PHP NumberFormatter и Валюта, не может установить точность

Я хочу установить точность 0 при использованииNumberFormatter PHP класс (отIntl расширение) с валютой. Однако я получил какой-то странный результат. Вот:

$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 €.

Это ошибка?

Ответы на вопрос(6)

Ваш ответ на вопрос