Pythonの四捨五入ですぐに思う浮かぶのはround()ですが、このメソッドは一般的な四捨五入にはなっていません。 round()は「銀行家の丸め」と呼ばれる丸め方を採用しており、丸め対象が5の場合、結果が偶数になる方に丸めるようになっているためです。
roundはそもそも四捨五入の関数じゃなくて 偶数への丸め という処理とのこと。 Decimalという標準モジュールを使っても、ちゃんと四捨五入してくれるらしいがいろいろめんどくさい。