intl — сохранить конечные нули, используя NumberFormatter в переполнении стека

Я работаю над обновлением устаревшей системы с класса PEAR i18nv2 до встроенной библиотеки PHP INTL. Когда я указываю шаблон как #,##0.## и беги NumberFormatter::format() на число как 12345.1000 я получил 12,345.1 не должны ли сохраняться конечные нули? Есть ли хороший способ добавить конечные нули после факта, учитывая, что во многих локалях десятичная дробь представляется запятой вместо десятичного знака?

Объясняется с кодом:

$n = new NumberFormatter('en_CA', NumberFormatter::PATTERN_DECIMAL, '#,##0.##');
echo $n->format(12345.10000);

1

Решение

http://icu-project.org/apiref/icu4c/classDecimalFormatSymbols.html

Symbol   Meaning
0      a digit
#      a digit, zero shows as absent

Так:

$n = new NumberFormatter('en_CA', NumberFormatter::PATTERN_DECIMAL, '#,##0.00');
echo $n->format(12345.10000);

Урожайность:

12,345.10
2

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

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

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