Почему floatformat:2 добавляет запятую после сотни

У меня есть проект Django, и у меня есть тег {{account.current_balance}} в моем HTML. Я также указал тип данных, на всякий случай, если это имеет значение. Я понимаю #1 и #2, но не понимаю, почему в #3 добавление intcomma добавит запятую после сотни.

  1. Тег без floatformat или intcomma

    {{ account.current_balance }}

вывод:
Текущий баланс - Тип
303.6000000000000 - десятичный

  1. Тег с floatformat:2

    {{ account.current_balance|floatformat:2 }}

вывод:
Текущий баланс - Тип
303.60 - Десятичная

  1. Тег с 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 добавляет запятые к целой части числа.

Вернуться на верх