浮動小数点数のリストを要約しようとしています。リストには小数の繰り返しはありませんが、結果は小数の繰り返しです。原因と予防方法は何ですか? (Pythonバージョン:2.7.11)
例えば、
a=[1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1]
sum(a)
結果は
7.699999999999999
ありがとうございました。
回答:
回答№1は0以下のコードのように、計算にnumpyを使用できます。
import numpy
a=[1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1]
print(numpy.sum(a))
回答№2の場合は0
これがバイナリ浮動小数点の性質です。詳細を読むことができます ここに
注:いつでも使用できます %.f
精度のため。つまり %.1f
あなたの場合