NumberFormatter::parse

numfmt_parse

数値をパースする

説明

オブジェクト指向型

public intfloatfalse NumberFormatter::parse(string $string, int $type = NumberFormatter::TYPE_DOUBLE, int &$offset = null)

手続き型

intfloatfalse numfmt_parse(
    NumberFormatter $formatter,
    string $string,
    int $type = NumberFormatter::TYPE_DOUBLE,
    int &$offset = null
)

現在のフォーマット規則を使用して、文字列を数値にパースします。

パラメータ

formatter

NumberFormatter オブジェクト。

string

数値としてパースする文字列。

type

使用する フォーマット形式。デフォルトでは NumberFormatter::TYPE_DOUBLE を使用します。 NumberFormatter::TYPE_CURRENCY はサポートされていないので注意して下さい。 NumberFormatter::TYPE_CURRENCY を使いたい場合、 代わりに NumberFormatter::parseCurrency を使いましょう。

offset

文字列中でパースを開始する位置のオフセット。 結果を返す際に、この値はパース終了時のオフセットを保持します。

戻り値

パースした数値、あるいはエラー時に false を返します。

例1 numfmt_parse の例

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
$num "1.234.567,891";
echo 
numfmt_parse($fmt$num)."\n";
echo 
numfmt_parse($fmt$numNumberFormatter::TYPE_INT32)."\n";
?>

例2 オブジェクト指向の例

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
$num "1.234.567,891";
echo 
$fmt->parse($num)."\n";
echo 
$fmt->parse($numNumberFormatter::TYPE_INT32)."\n";
?>

上の例の出力は以下となります。

1234567.891
1234567

参考

  • numfmt_get_error_code
  • numfmt_format
  • numfmt_parse_currency