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.
NumberFormatter::parse
numfmt_parse
(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
NumberFormatter::parse -- numfmt_parse — Parse a number
Beschreibung
Objektorientierter Stil
Prozeduraler Stil
Parse a string into a number using the current formatter rules.
Parameter-Liste
-
fmt -
NumberFormatter object.
-
type -
The formatting type to use. By default,
NumberFormatter::TYPE_DOUBLEis used. -
position -
Offset in the string at which to begin parsing. On return, this value will hold the offset at which parsing ended.
Rückgabewerte
The value of the parsed number or FALSE on error.
Beispiele
Beispiel #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";
?>
Beispiel #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";
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
1234567.891 1234567
Siehe auch
- numfmt_get_error_code() - Get formatter's last error code.
- numfmt_format() - Format a number
- numfmt_parse_currency() - Parse a currency number
rdohms at php dot net ¶
10 months ago
