Pythonでの四捨五入
注釈 浮動小数点数に対する round() の振る舞いは意外なものかもしれません: 例えば、 round(2.675, 2) は予想通りの 2.68 ではなく 2.67 を与えます。これはバグではありません: これはほとんどの小数が浮動小数点数で正確に表せないことの結果です。詳しくは 浮動小数点演算、その問題と制限 を参照してください。 code: round.py
from decimal import Decimal, ROUND_HALF_UP
x = 0.25
# round関数を使う方法
print(round(0.25, 1)) # 0.2になる
# Decimalを使う方法
y = float(Decimal(str(x)).quantize(Decimal("0.1"), rounding=ROUND_HALF_UP))
print(y) # 0.3になる