Sum()在列表分区时给出不同的值?

时间:2016-10-30 14:17:06

标签: python

我有这个数字列表

num = [3.700872591587623, 3.083141235300246, 3.700872591587623, 2.321928094887362, -0.0, 5.088040034713085, 3.8079321155203494, 3.0, 3.8079321155203494, 3.700872591587623, -0.0, -0.0, 5.088040034713085, 5.088040034713085, 3.8079321155203494, 3.8079321155203494]

我有以上列表中的这三个较小的分区

list_1 = nums[:5]   # Elements 0 to 4
list_2 = nums[5:-1] # Elements 5 to len(list) - 1
list_3 = nums[-1:]  # Element len(list) - 1

等效性测试:

>>> nums == list_1 + list_2 + list_3
True

当我对较大的列表求和时,我得到以下值

>>> sum(nums)
50.003535671171136

但是当我对较小的列表求和并将它们加在一起时,我会得到一个不同的值(逻辑上它们应该给你相同的值)

>>> sum(list_1) + sum(list_2) + sum(list_3)
50.00353567117113

具体而言,sum(nums)给出的值大于0.00000000000006。这种微小的差异没有通过等价测试,这对我的计划中的决策产生了影响。我希望这两项操作“可靠地”执行。有没有办法确保?

0 个答案:

没有答案