生のフォーマット文字列を使用してfloatをレンダリングする方法の組み込み動作について言及する価値があります。0.5に関して小数部分がどこにあるかを事前に知っている場合は、最初に試みたフォーマット文字列を活用できますが、丸めの副作用では不十分であることがわかりました"{:0.0f}"
。次の例を確認してください...
>>> "{:0.0f}".format(1.999)
'2'
>>> "{:0.0f}".format(1.53)
'2'
>>> "{:0.0f}".format(1.500)
'2'
>>> "{:0.0f}".format(1.33)
'1'
>>> "{:0.0f}".format(0.501)
'1'
>>> "{:0.0f}".format(0.5)
'0'
>>> "{:0.0f}".format(0.1)
'0'
>>> "{:0.0f}".format(0.001)
'0'
ご覧のとおり、舞台裏では丸め動作があります。intをfloatに変換するデータベースを持っていた場合、事前に非小数部分を処理していることを知っていて、回避策としてfloatのint部分のみをHTMLテンプレートでレンダリングしたいと考えていました。もちろん、小数部分が事前にわからない場合は、最初にフロートで何らかの切り捨て操作を実行する必要があります。