Dutch PHP Conference 2025 - Call For Papers

NumberFormatter::parse

numfmt_parse

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

NumberFormatter::parse -- numfmt_parseParse a number

Опис

Об'єктно-орієнтований стиль

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

Процедурний стиль

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

Parse a string into a number using the current formatter rules.

Параметри

formatter

NumberFormatter object.

string

The string to parse for the number.

type

The formatting type to use. By default, NumberFormatter::TYPE_DOUBLE is used. Note that NumberFormatter::TYPE_CURRENCY is not supported; use NumberFormatter::parseCurrency() instead.

offset

Offset in the string at which to begin parsing. On return, this value will hold the offset at which parsing ended.

Значення, що повертаються

The value of the parsed number or false on error.

Приклади

Приклад #1 numfmt_parse() example

<?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 OO example

<?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

Прогляньте також

add a note

User Contributed Notes 2 notes

up
5
rdohms at php dot net
12 years ago
It interesting to note that the expected behavior for this function may change according to your ICU version.

In ICU 4.4.2 (standard for Ubuntu 10.* with PHP 5.3.5)

With locale 'en', input of 100,1 returns 1001

In ICU 4.8.1 (standard for Ubuntu 12.* with PHP 5.3.10)

With locale 'en', input of 100,1 returns "false"

Be sure to note your ICU version in phpinfo() to be sure you will get the expected output.
up
4
Rakasch
5 years ago
'en_EN':

basically the first part is the language and the second part the region:
'en_EN' - english, England
'en_US' - english, United States

You can lookup the language tags like 'en_EN' here:
https://datahub.io/core/language-codes
see "ietf-language-tags"
To Top