我在使用php NumberFormatter类时遇到了一些问题。我希望显示四舍五入的数字,没有小数,并且带有小数的数字要保留2位小数。例如:
$fmt = new NumberFormatter('nl', NumberFormatter::CURRENCY);
$fmt->setAttribute(\NumberFormatter::MIN_FRACTION_DIGITS, 0);
$fmt->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, 2);
var_dump($fmt->formatCurrency(15.15, 'EUR')); //Outputs € 15,15
var_dump($fmt->formatCurrency(15, 'EUR')); //Outputs € 15,00
如您所见,最后一个转储输出的是
15,00
,但我在这里预期的是15
。
每当我使用“完整”语言环境nl_NL
而不是nl
时,格式化程序会按预期运行,但我无法使用它,因为我只有我的语言环境可用。$fmt = new NumberFormatter('nl_NL', NumberFormatter::CURRENCY);
$fmt->setAttribute(\NumberFormatter::MIN_FRACTION_DIGITS, 0);
$fmt->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, 2);
var_dump($fmt->formatCurrency(15.15, 'EUR')); //Outputs € 15,15
var_dump($fmt->formatCurrency(15, 'EUR')); //Output € 15
这似乎是NumberFormatter中的错误,但我真的不知道如何修复它或找到其他解决方法。如果有帮助,我会非常感激。