在 PHP 中使用 NumberFormatter 保留尾随零


Preserve trailing zeroes using NumberFormatter in PHP

我正在努力将遗留系统从PEAR的i18nv2类升级到PHP的内置INTL库。当我指定像 #,##0.## 这样的模式并在类似 12345.1000 的数字上运行NumberFormatter::format()时,我得到12,345.1不应该保留尾随零吗?考虑到在许多区域设置中,小数点由逗号而不是十进制字符表示,有没有一种好方法可以在事后添加尾随零?

用代码解释:

$n = new NumberFormatter('en_CA', NumberFormatter::PATTERN_DECIMAL, '#,##0.##');
echo $n->format(12345.10000);

http://icu-project.org/apiref/icu4c/classDecimalFormatSymbols.html

Symbol   Meaning
  0      a digit
  #      a digit, zero shows as absent

所以:

$n = new NumberFormatter('en_CA', NumberFormatter::PATTERN_DECIMAL, '#,##0.00');
echo $n->format(12345.10000);

收益 率:

12,345.10