在 Linux 上,您可能需要安装 icu-data-full 包才能使 NumberFormatter 与非英语语言环境正常工作。
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
NumberFormatter::format -- numfmt_format — 格式化数字
面向对象风格
$num
, int $type
= NumberFormatter::TYPE_DEFAULT): string|false过程式风格
$formatter
, int|float $num
, int $type
= NumberFormatter::TYPE_DEFAULT): string|false根据格式化程序规则格式化数值。
formatter
NumberFormatter 对象。
num
type
要使用的 格式化类型。请注意,NumberFormatter::TYPE_CURRENCY
不受支持;请改用 NumberFormatter::formatCurrency()。
返回包含格式化值的字符串,或在发生错误时返回 false
。
示例 #1 numfmt_format() 示例
<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_format($fmt))) {
report_error("Formatter error");
}
?>
示例 #2 OO 示例
<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
report_error("Formatter error");
}
?>
以上示例将输出
1.234.567,891
注意:
通过此格式化方法可以实现的格式无法完全利用底层 ICU 库的功能,例如以缩写货币符号格式化货币。
要完全利用它们,请使用 msgfmt_format_message()。