这对于某些人来说可能是显而易见的,但是 `setSymbol(NumberFormatter::CURRENCY_SYMBOL, '')` 对于 `formatCurrency` 不起作用 - 它将被忽略...
使用 `NumberFormatter::CURRENCY` 和 `$fmt->format(123);` 来获取货币值,其中符号指定为 `CURRENCY_SYMBOL`(或 `INTL_CURRENCY_SYMBOL`)
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
NumberFormatter::setSymbol -- numfmt_set_symbol — 设置符号值
面向对象风格
过程式风格
设置与格式化程序关联的符号。格式化程序使用符号来表示数字中特殊的区域依赖字符,例如百分号。此 API 不支持基于规则的格式化程序。
示例 #1 numfmt_set_symbol() 示例
<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>
示例 #2 面向对象示例
<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>
上面的示例将输出
Sep: . 1.234.567,891 Sep: * 1*234*567,891
这对于某些人来说可能是显而易见的,但是 `setSymbol(NumberFormatter::CURRENCY_SYMBOL, '')` 对于 `formatCurrency` 不起作用 - 它将被忽略...
使用 `NumberFormatter::CURRENCY` 和 `$fmt->format(123);` 来获取货币值,其中符号指定为 `CURRENCY_SYMBOL`(或 `INTL_CURRENCY_SYMBOL`)