Pythonの四捨五入ですぐに思う浮かぶのはround()ですが、このメソッドは一般的な四捨五入にはなっていません。 round()は「銀行家の丸め」と呼ばれる丸め方を採用しており、丸め対象が5の場合、結果が偶数になる方に丸めるようになっているためです。
* [Python Django 四舍五入到小数点后两位基本命令](#Python_Django_round_to_two_decimal_places_basic_commands "Python Django round to two decimal places ...
roundはそもそも四捨五入の関数じゃなくて 偶数への丸め という処理とのこと。 Decimalという標準モジュールを使っても、ちゃんと四捨五入してくれるらしいがいろいろめんどくさい。