Почему floatformat:2 добавляет запятую после сотни
У меня есть проект Django, и у меня есть тег {{account.current_balance}} в моем HTML. Я также указал тип данных, на всякий случай, если это имеет значение. Я понимаю #1 и #2, но не понимаю, почему в #3 добавление intcomma добавит запятую после сотни.
Тег без floatformat или intcomma
{{ account.current_balance }}
вывод:
Текущий баланс - Тип
303.6000000000000 - десятичный
Тег с floatformat:2
{{ account.current_balance|floatformat:2 }}
вывод:
Текущий баланс - Тип
303.60 - Десятичная
Тег с floatformat:2 с intcomma
{{ account.current_balance|floatformat:2|intcomma }}
вывод:
Текущий баланс - Тип
,303.60 - Десятичная
Это ошибка в Django с проблемой #35172. Она была решена для LTS-релизов в версиях 3.2.25+ и 4.2.11+, для текущей основной версии она была решена в версии 5.0.3 и далее.
Решением для устранения этой проблемы будет обновление до версии Django, в которой это исправлено.
при использовании фильтра intcomma вместе с фильтром floatformat в шаблонах Django. Фильтр intcomma используется для добавления запятых к большим числам для лучшей читабельности, но, похоже, он также влияет на десятичную часть вашего числа.
Тег без floatformat или intcomma
{{ account.current_balance }}
Это просто выводит текущий баланс без применения какого-либо форматирования.
Тег с плавающей платформой
{{ account.current_balance|floatformat:2 }}
Здесь применяется фильтр floatformat для округления числа до 2 знаков после запятой.
Тег с floatformat:2 с intcomma:
{{ account.current_balance|floatformat:2|intcomma }}
Здесь применяются фильтры floatformat и intcomma. Фильтр floatformat округляет число до 2 знаков после запятой, а фильтр intcomma добавляет запятые к целой части числа.