NumberFormatter::format

numfmt_format

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

NumberFormatter::format -- numfmt_format格式化数字

描述

面向对象风格

public NumberFormatter::format(int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

过程式风格

numfmt_format(NumberFormatter $formatter, int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

根据格式化程序规则格式化数值。

参数

formatter

NumberFormatter 对象。

num

要格式化的值。可以是 intfloat,其他值将被转换为数值。

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()

参见

添加注释

用户贡献注释 1 个注释

2
mrSplendid
1 年前
在 Linux 上,您可能需要安装 icu-data-full 包才能使 NumberFormatter 与非英语语言环境正常工作。
To Top