ZoeLee 发表于 2017-2-17 22:05:17

sum()的问题,讨论区看到的我也想不通

>>> tuple1 = (3.1,2.3,3.4)
>>> sum(tuple1,1)
9.799999999999999

这是什么原因啊?
为什么1会转化为0.99999....了?

lubcat 发表于 2017-2-18 01:07:13


sum(iterable, start=0, /)
    Return the sum of a 'start' value (default: 0) plus an iterable of numbers
sum里头没有找到有关的解释

tuple里也没找到。

同问。

ZoeLee 发表于 2017-2-19 20:38:34

有人回答一下吗?不懂啊

lubcat 发表于 2017-2-19 22:16:50

ZoeLee 发表于 2017-2-19 20:38
有人回答一下吗?不懂啊

关键在于sum(8.8,1)这个计算环节
计算机采用二进制,进行运算都要先转换为二进制数字,
机加时,会进行与,或计算。得到和,
再转换为十进制数表示。

9.8的十进制浮点数经计算机转换,表示为9.7999999
这是计算机本身的限制问题。
页: [1]
查看完整版本: sum()的问题,讨论区看到的我也想不通