我有这个数字列表
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。这种微小的差异没有通过等价测试,这对我的计划中的决策产生了影响。我希望这两项操作“可靠地”执行。有没有办法确保?