[Python] 297 数値を丸める(偶数丸め,四捨五入)

Java-Swingアプリの外部プログラムとしてPythonコードを走らせ、pandasにて合計を計算したところ変な小数が発生しました。

原因は不明ですが、放置もできないので数値を丸めました。pandasのround()メソッドは四捨五入ではなく偶数丸めです。偶数丸めとは、丸めるところが5の場合すぐ上の桁が偶数であれば切り捨て、奇数であれば切り上げる処理です。

数値の丸めはJIS Z 8401で規定されていて、規則Aが偶数丸め、規則Bが四捨五入です。つまり、誤差がより小さい偶数丸めの方を推奨しています。銀行が好んで使うため銀行丸めとも呼ばれています。

# 小数点以下の桁数は1桁に設定
prize = df['賞金'].sum(skipna=True).round(1)
print(f"獲得賞金 {prize}")