Учитывая, что никто не упомянул об этом ...
Некоторые языки высокого уровня, такие как Python и Java, поставляются с инструментами для преодоления ограничений двоичной с плавающей запятой. Например:
decimal
Python [и g0] и класс BigDecimal
Java [], которые представляют числа внутри с десятичной нотацией (в отличие от двоичная запись). Оба имеют ограниченную точность, поэтому они все еще подвержены ошибкам, однако они решают наиболее распространенные проблемы с бинарной арифметикой с плавающей запятой. Десятичные числа очень хороши при работе с деньгами: десять центов плюс двадцать центов всегда ровно тридцать центов: >>> 0.1 + 0.2 == 0.3
False
>>> Decimal('0.1') + Decimal('0.2') == Decimal('0.3')
True
Модуль decimal
Python основан на стандарте IEEE стандарта 802.118 . fractions
модуль и класс Apache Common BigFraction
. Оба представляют собой рациональные числа как пары (numerator, denominator)
, и они могут давать более точные результаты, чем десятичная арифметика с плавающей запятой. Ни одно из этих решений не идеально (особенно, если мы смотрим на выступления, или если мы требуют очень высокой точности), но все же они решают большое количество проблем с двоичной арифметикой с плавающей запятой.
Вы можете использовать переменную в теге статического шаблона. Обратите внимание, что вам не нужны {{
или }}
{% static SampleModel.0.propertyValue %}
Вы можете использовать любую переменную из своего контекста в тегах Django (для работы с пользовательскими тегами могут потребоваться некоторые корректировки). В вашем случае это прекрасно работает:
{% static SampleModel.0.propertyValue %}
Эти действия также работают:
{% with my_computed_var=SampleModel.0.propertyValue %}
{% static my_computed_var %}
{% endwith %}
{% static some_var|customFilter %}
Для получения дополнительной информации см. документацию об пользовательских тегах это также актуально для тегов по умолчанию Django.