Mic*_*ego 16 php numberformatter intl
我想在使用带货币的NumberFormatter PHP类(来自Intl扩展名)时设置精度为0 .但是我得到了一些奇怪的结果.这里:
$numberFormatter = new NumberFormatter('en-US', NumberFormatter::CURRENCY);
$numberFormatter->setAttribute(NumberFormatter::FRACTION_DIGITS, 0);
echo $numberFormatter->formatCurrency('45', 'USD');
Run Code Online (Sandbox Code Playgroud)
它输出$45,这是我想要的.但是,如果我EUR使用相同的设置更改货币:
echo $numberFormatter->formatCurrency('45', 'EUR');
Run Code Online (Sandbox Code Playgroud)
它输出€45.00(虽然我明确地设置为零精度).
更奇怪的是,如果我将语言环境设置为fr-FR,它会按预期输出数字:
$numberFormatter = new NumberFormatter('fr-FR', NumberFormatter::CURRENCY);
$numberFormatter->setAttribute(NumberFormatter::FRACTION_DIGITS, 0);
echo $numberFormatter->formatCurrency('45', 'EUR');
Run Code Online (Sandbox Code Playgroud)
它输出45 €.
这是一个错误吗?