PHP Conference Japan 2024

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 面向对象示例

<?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 条注释

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