如果没有舍入小数,如何在twig中格式化数字? 例如,如果用户输入
12345.35,输出应为12,345.35
12345.356,输出应为12,345.356
12345.3567,输出应为12,345.3567
我尝试了number_format过滤器,但第一个参数是小数应该舍入到的精度。如果我使用12345.35|number_format(4, '.', ',')
,则结果为12,345.3500,这不是所需的输出。
答案 0 :(得分:1)
在格式化之前,您应该确定数字中的小数位数。不太明显,但我找不到另一种解决方案。
尝试使用此宏:
{% macro show_number(n) %}
{%- spaceless %}
{% set decimals = n | split('.')[1] | default('') | length %}
{{ n | number_format(decimals, '.', ',') }}
{% endspaceless -%}
{% endmacro %}
可运行的示例here