Я хочу установить точность 0 при использовании NumberFormatter PHP-класс (из Intl extension) с валютой. Однако у меня есть какой-то странный результат. Здесь:
$numberFormatter = new NumberFormatter('en-US', NumberFormatter::CURRENCY);
$numberFormatter->setAttribute(NumberFormatter::FRACTION_DIGITS, 0);
echo $numberFormatter->formatCurrency('45', 'USD');
Он выводит $45, чего я хочу. Однако, если я изменил валюту на EUR с теми же настройками:
echo $numberFormatter->formatCurrency('45', 'EUR');
Он выводит €45.00 (хотя я явно устанавливаю, чтобы иметь точность нуля).
Еще более странно, если я установил locale на fr-FR, он выведет номер, как ожидалось:
$numberFormatter = new NumberFormatter('fr-FR', NumberFormatter::CURRENCY);
$numberFormatter->setAttribute(NumberFormatter::FRACTION_DIGITS, 0);
echo $numberFormatter->formatCurrency('45', 'EUR');
Он выводит 45 €.
Это ошибка?