Я работаю над обновлением устаревшей системы с класса 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);
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
Других решений пока нет …