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("格式器錯誤");
}
?>

範例 #2 物件導向範例

<?php
$fmt
= new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(
intl_is_failure($fmt->getErrorCode())) {
report_error("格式器錯誤");
}
?>

上述範例將輸出

1.234.567,891

注意事項

注意:

此格式化方法所能達成的格式無法完全利用底層 ICU 函式庫的可能性,例如使用窄版貨幣符號來格式化貨幣。

要充分利用它們,請使用 msgfmt_format_message()

另請參閱

新增註釋

使用者貢獻的註釋 1 則註釋

mrSplendid
1 年前
在 Linux 上,您可能需要安裝 icu-data-full 套件,才能讓 NumberFormatter 正確處理非英文語系。
To Top