Я хочу установить точность 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 €
.
Это ошибка?