python - float的总和导致重复的十进制

时间:2017-05-25 03:46:23

标签: python

我想总结一个浮点数列表。列表中没有重复的小数,但结果是重复的小数。原因是什么以及如何预防? (Python版本:2.7.11)

例如,

a=[1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1]
sum(a)

结果

7.699999999999999

谢谢。

2 个答案:

答案 0 :(得分:0)

这是二进制浮点的本质。您可以阅读更多信息here

注意:您始终可以使用%.f来获得精确度。即你案件中的%.1f

答案 1 :(得分:0)

您可以使用numpy进行计算,如下面的代码所示:

import numpy

a=[1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1]
print(numpy.sum(a))