Почему 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);