Формат числа веток без округления десятичных дробей
Как можно в ветке отформатировать число без округления десятичных дробей? Например, если пользователь вводит
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, что не является желаемым результатом.
1 ответ
Решение
Вы должны определить количество десятичных знаков в числе перед тем, как его отформатировать. Не совсем очевидно, но я не нахожу другого решения.
Попробуйте с этим макросом:
{% macro show_number(n) %}
{%- spaceless %}
{% set decimals = n | split('.')[1] | default('') | length %}
{{ n | number_format(decimals, '.', ',') }}
{% endspaceless -%}
{% endmacro %}
Пример запуска здесь