Pythonで四捨五入をする方法

Pythonで四捨五入をする方法

Pythonで四捨五入を行うには、主に round() 関数を使用します。
この関数は数値を指定した小数点以下の桁数に丸めることができます。
以下では、round() 関数の使い方と、その他の関連する方法について詳しく説明します。

round() 関数の基本

round() 関数は次のように使用します。

rounded_value = round(number, ndigits)
  • number は四捨五入したい数値です。
  • ndigits は小数点以下の桁数を指定します。

省略すると整数に丸められます。

print(round(3.14159, 2))  # 3.14
print(round(3.14159))     # 3

この例では、3.14159 を小数点以下2桁に丸めると 3.14 になります。
また、ndigits を省略すると整数部分に丸められ 3 になります。

四捨五入の動作

round() 関数の四捨五入の動作は、「最近接偶数丸め(銀行丸め)」として知られています。
これは、対象の数値が2つの近い整数の中間に位置する場合、偶数に丸められるというものです。

print(round(0.5))  # 0
print(round(1.5))  # 2

ここで、0.5 は 0 に丸められ、1.5 は 2 に丸められます。
これにより、統計的なバイアスが減少します。

小数点以下の桁数を指定しない場合

ndigits を指定しない場合、round() 関数は数値を最も近い整数に丸めます。
この場合、正確な小数点以下の桁数は考慮されません。

print(round(7.6))  # 8
print(round(7.4))  # 7

この例では、7.6 は 8 に丸められ、7.4 は 7 に丸められます。

数値が0.5の場合の挙動

特に注意が必要なのは、数値が 0.5 の場合です。
この場合、round() 関数は偶数に丸めますが、これは特定のビジネスルールにおいては意図した結果でないことがあります。

print(round(2.5))  # 2
print(round(3.5))  # 4

四捨五入以外の方法

四捨五入以外にも、数値の切り捨てや切り上げを行う方法もあります。
これには math モジュールの floor() および ceil() 関数を使用します。

  • 切り捨て (math.floor())
import math
print(math.floor(3.7))  # 3
  • 切り上げ (math.ceil())
import math
print(math.ceil(3.2))  # 4

これらの関数は、数値を指定した整数に切り捨てたり切り上げたりするため、四捨五入とは異なる結果になります。

結論

round() 関数はPythonでの基本的な四捨五入を行うための主要なツールです。
その動作は最近接偶数丸めであり、特定の状況では期待通りの結果を得るために注意が必要です。
その他の数値処理方法としては、切り捨てや切り上げを行う math.floor() や math.ceil() を使用することができます。
これらの方法を理解し適切に使用することで、数値処理をより正確に行うことができます。