为什么 NumberFormatter 在 format() 中删除货币小数位
Why does NumberFormatter drop monetary fraction digits in format()
为什么会出现下面两行
$fmt = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo $fmt->format(12.34, NumberFormatter::CURRENCY);
输出.00
?
这是因为您使用 NumberFormatter::CURRENCY
常量作为 format()
的第二个参数。
在 NumberFormatter
文档的 predefined constants 部分,常量被分组在它们应该使用的方法下。
NumberFormatter::CURRENCY
的值为 2
并且应该在构造格式化程序时使用,正如您所做的那样。 format()
函数中的一个值2
对应于NumberFormatter::TYPE_INT64
.
您应该可以在没有第二个参数的情况下调用 format(12.34)
。
$fmt = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo $fmt->format(12.34);
为什么会出现下面两行
$fmt = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo $fmt->format(12.34, NumberFormatter::CURRENCY);
输出.00
?
这是因为您使用 NumberFormatter::CURRENCY
常量作为 format()
的第二个参数。
在 NumberFormatter
文档的 predefined constants 部分,常量被分组在它们应该使用的方法下。
NumberFormatter::CURRENCY
的值为 2
并且应该在构造格式化程序时使用,正如您所做的那样。 format()
函数中的一个值2
对应于NumberFormatter::TYPE_INT64
.
您应该可以在没有第二个参数的情况下调用 format(12.34)
。
$fmt = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo $fmt->format(12.34);