数値をパースする

# NumberFormatter::parse

# numfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parse — 数値をパースする

### 説明

オブジェクト指向型

public function NumberFormatter::parse(string `$string`, int `$type` = `NumberFormatter::TYPE_DOUBLE`, int `&$offset` = `null`): int|float|false

手続き型

function numfmt_parse(
NumberFormatter `$formatter`,
string `$string`,
int `$type` = `NumberFormatter::TYPE_DOUBLE`,
int `&$offset` = `null`
): int|float|false

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

### パラメータ

`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, $num, NumberFormatter::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($num, NumberFormatter::TYPE_INT32)."\n";
    ?>

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

    1234567.891
    1234567

### 参考

- numfmt_get_error_code() - フォーマッタの直近のエラーコードを取得する
- numfmt_format() - 数値をフォーマットする
- numfmt_parse_currency() - 通貨をパースする

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open