Пример кода:
$fmt = new NumberFormatter('sv_SE', NumberFormatter::PERCENT);
var_dump($fmt->format(99.99));
Ожидаемый результат:
string(9) "99,99 %"
Фактический вывод:
string(9) "9 999 %"
Анализ:
Я должен быть "отсутствует" что-то". У меня уже есть процентное число (девяносто девять и девяносто девять), и все, что я хочу, это вывести его соответствующим образом для данной комбинации языка и локали. Например, в США это «99,99%» с точкой для десятичной запятой и без пробела между процентным числом и знаком процента, а в Швеции это «99,99%» с запятой для десятичной запятой и пространство между. Вероятно, есть множество других правил в других локалях / языках, с которыми я только что не сталкивался.
Я делаю , а не хочу PHP, чтобы "продолжить обработку" числа, которое я кормлю это никак. Уже сделано". Больше никакой обработки не требуется.
Я, честно говоря, даже не понимаю, почему PHP превращает его в "9999", когда он явно задан как число с плавающей точкой, как 99,99 ...
Is есть какая-то скрытая опция, чтобы отключить эту «дальнейшую обработку» числа?