数値の丸め処理

Python:
数値の丸め処理

方法:

以下はPythonで数値を丸める方法についての詳細です:

# 数値を最も近い整数に丸める
print(round(8.67))  # 出力: 9

# 指定された小数点以下の桁数に数値を丸める
print(round(8.67, 1))  # 出力: 8.7

# 偶数は下に丸められ、奇数は上に丸められる
print(round(2.5))  # 出力: 2
print(round(3.5))  # 出力: 4

ディープダイブ

Pythonでは、round()は単に小数点を切り捨てるわけではありません。歴史的に、Pythonを含む多くの他の言語は、「半数を偶数に丸める」または「銀行家の丸め」に従います。これは、金融計算で重要になる合計や平均の累積誤差を最小限に抑えます。

代替案として、Pythonの数学モジュールからmath.floor()math.ceil()があり、数値を次の整数まで引き下げたり上げたりします。しかし、精度が求められる場合は、decimalモジュールのquantize()が丸め挙動を指定させます。

内部的に、round()は二進浮動小数点数を扱います。二進法で正確に表現できない小数があるので、round(2.675, 2)が期待通りに2.68にならないような驚きがあるかもしれません。高精度が必要な場合はdecimalfractionsを使います。

参照