У меня есть десятичное число с 4 цифрами и шкалой 4. (Макс. 0,9999, а мин. 0,0000)
Я использую Twig и его внутреннее расширение. Когда я хочу отобразить процентное число, десятичные дроби округляются.
{% set decimal = 0.0850 %}
{{ decimal|localizednumber('decimal','double','fr-fr') }} //WILL OUTPUT "0,085"
{{ decimal|localizednumber('decimal','double','zh-cn') }} //WILL OUTPUT "0.085"
{{ decimal|localizednumber('decimal','double','ar-bh') }} //WILL OUTPUT "٠٫٠٨٥"
{{ decimal|localizednumber('percent','double','fr-fr') }} //WILL OUTPUT "8 %"
{{ decimal|localizednumber('percent','double','zh-cn') }} //WILL OUTPUT "8%"
{{ decimal|localizednumber('percent','double','ar-bh') }} //WILL OUTPUT "% ٨"
Я хотел бы видеть 8,5 %
на французском, 8.5%
на китайском и % ٨٫٥
на арабском.
Я попытался добавить параметр double
, но это не меняет точности.
Поскольку я использую Symfony, я попытался объявить 2 десятичных знака в числовом формате:
<!-- lang-yml -->
#config/twig.yaml
twig:
#...
number_format:
decimals: 2
Похоже, что расширение Intl переопределяет эти настройки.
Я знаю, что могу сделать что-то вроде
{{ (decimal*100)|localizednumber('decimal','double')}}%
Но в некоторых языках перед результатом может стоять символ %
, во французском языке перед символом %
стоит неразрывный пробел.
Ты видишь мою ошибку? У тебя есть решение?