Python3 round() 関数
説明
round()メソッドは浮動小数点数 x の四捨五入値を返します。正確に言うと、保持される値は直前の桁により近い方に丸められます(四捨六入)。
高い精度が要求される場合は、この関数の使用は推奨されません。
構文
以下は round() メソッドの構文です:
round( x [, n] )
パラメータ
- x -- 数値式。
- n -- 小数点以下の桁数を表し、x を四捨五入する桁数を指定します。デフォルト値は 0 です。
戻り値
浮動小数点数 x の四捨五入値を返します。例
以下に round() メソッドを使用した例を示します:
例
#!/usr/bin/python3
print ("round(70.23456) : ", round(70.23456))
print ("round(56.659,1) : ", round(56.659,1))
print ("round(80.264, 2) : ", round(80.264, 2))
print ("round(100.000056, 3) : ", round(100.000056, 3))
print ("round(-100.000056, 3) : ", round(-100.000056, 3))
print ("round(70.23456) : ", round(70.23456))
print ("round(56.659,1) : ", round(56.659,1))
print ("round(80.264, 2) : ", round(80.264, 2))
print ("round(100.000056, 3) : ", round(100.000056, 3))
print ("round(-100.000056, 3) : ", round(-100.000056, 3))
上記の例を実行した後の出力結果は以下のとおりです:
round(70.23456) : 70 round(56.659,1) : 56.7 round(80.264, 2) : 80.26 round(100.000056, 3) : 100.0 round(-100.000056, 3) : -100.0
公式サイトで紹介されている例を見てみましょう:
>>> round(2.675, 2) 2.67
私たちの考えでは戻り値は 2.68 になるはずですが、結果は 2.67 です。なぜでしょうか?
これは浮動小数点数の精度に関係します。コンピューター内では浮動小数点数が必ずしも正確に表現できるわけではありません。1 と 0 の並びに変換すると無限桁になる可能性があるため、コンピューターは切り捨て処理を行っているからです。そのため、コンピューター内に保存された 2.675 という数値は実際の数値よりわずかに小さくなります。このわずかな差により、2.67 により近くなるため、小数第2位を保持するときは 2.67 に近似されます。
その他の拡張