Почему NumberFormatter отбрасывает цифры денежной дроби в формате ()

Почему следующие две строки

$fmt = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo $fmt->format(12.34, NumberFormatter::CURRENCY);

выход $12.00 ?

1

Решение

Это потому, что вы используете NumberFormatter::CURRENCY константа в качестве второго аргумента format(),

в предопределенные константы раздел NumberFormatter документация, константы сгруппированы по каким методам их следует использовать.

NumberFormatter::CURRENCY имеет значение 2 и должен использоваться при построении форматера, как вы сделали. Значение 2 в format() функция соответствует NumberFormatter::TYPE_INT64,

Вы должны просто быть в состоянии позвонить format(12.34) без второго аргумента.

$fmt = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo $fmt->format(12.34);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]