Я хочу установить точность 0 при использовании класса PHP NumberFormatter (из 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
(хотя я явно установил нулевую точность).
Еще более странно то, что если я установил локаль на fr-FR
, он выводит число, как и ожидалось:
$numberFormatter = new NumberFormatter('fr-FR', NumberFormatter::CURRENCY);
$numberFormatter->setAttribute(NumberFormatter::FRACTION_DIGITS, 0);
echo $numberFormatter->formatCurrency('45', 'EUR');
Выводит 45 €
.
Это ошибка?
EUR
? - person Tchoupi   schedule 09.09.2012