Pythonのround関数で一般的な四捨五入ではない?

Pythonのround()関数は、通常、一般的な四捨五入(round half to even)を実行します。この丸め方法は、数値が中間の場合(5の場合)、最も近い偶数の整数に丸めます。この方法は統計的に公平であるため、多くの数値計算アプリケーションで使用されます。この方法に従って、以下のルールが適用されます:

  1. 整数部と小数部を分け、小数部の最初の桁が5未満の場合、切り捨て
  2. 小数部の最初の桁が5以上の場合、切り上げ
  3. 小数部の最初の桁がちょうど5である場合、前の整数部が偶数であれば切り捨て、奇数であれば切り上げ

以下は具体的な例です:

python
# 通常の四捨五入 print(round(3.5)) # 出力: 4 print(round(2.5)) # 出力: 2 print(round(4.55, 1)) # 小数点以下1桁での四捨五入, 出力: 4.6

ただし、Python 3.5以降では、round()関数の第二引数で桁数を指定し、丸め方法を制御することができます。具体的には、round()関数の第二引数に正確な丸め方法を指定することができます。例えば、round(x, 2, ROUND_DOWN)のようにして、DOWN(切り捨て)、UP(切り上げ)、HALF_DOWN(半捨て)、HALF_UP(半上げ)などを指定できます。詳細についてはPythonの公式ドキュメントを参照してください。