10 進数はデフォルトで非常に予想外に丸められます。これを正常に機能させるには、ROUND_HALF_UP
オプションを使用する必要があります。
>>> from decimal import *
>>> Decimal("2.5").quantize(Decimal(1))
Decimal('2')
>>> getcontext().rounding = ROUND_HALF_UP
>>> Decimal("2.5").quantize(Decimal(1))
Decimal('3')
>>> Decimal("2.4").quantize(Decimal(1))
Decimal('2')
私の質問は、プロジェクトでグローバルに機能するように、Django アプリケーションのどこで丸めオプションを設定する必要があるかということです。グローバルとは、テンプレート (floatformat テンプレート タグ)、ビュー、モデルの 10 進数フィールドなどを意味します。