Pythonの四捨五入ですぐに思う浮かぶのはround()ですが、このメソッドは一般的な四捨五入にはなっていません。 round()は「銀行家の丸め」と呼ばれる丸め方を採用しており、丸め対象が5の場合、結果が偶数になる方に丸めるようになっているためです。
このような厳密な計算が求められる場合、Pythonには「decimalモジュール」という、10進数を10進数のまま(2進数に変換せず)誤差なく計算するための仕組みが標準で用意されています。 続きはブログで:decimalの具体的なコードとround ()での対処 ...