NumberFormatter::parse
numfmt_parse
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
NumberFormatter::parse -- numfmt_parse — Parse a number
说明
面向对象风格
$string
, int $type
= NumberFormatter::TYPE_DOUBLE, int &$offset
= null
): int|float|false过程化风格
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 thatNumberFormatter::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
参见
- numfmt_get_error_code() - Get formatter's last error code
- numfmt_format() - Format a number
- numfmt_parse_currency() - Parse a currency number
用户贡献的备注 2 notes
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.
'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"
备份地址:http://www.lvesu.com/blog/php/numberformatter.parse.php