文字

NumberFormatter::parse

numfmt_parse

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

NumberFormatter::parse -- numfmt_parseParse a number

说明

面向对象风格

public mixed NumberFormatter::parse ( string $value [, int $type [, int &$position ]] )

过程化风格

mixed numfmt_parse ( NumberFormatter $fmt , string $value [, int $type [, int &$position ]] )

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

参数

fmt

NumberFormatter object.

type

The formatting type to use. By default, NumberFormatter::TYPE_DOUBLE is used.

position

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.

范例

Example #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" ;
?>

Example #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

用户评论:

[#1] rdohms at php dot net [2012-07-06 11:53:22]

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.

上一篇: 下一篇: