sum函数的使用问题
tuple2 = (3.1,2.3,3.4)>>> sum(tuple2)
8.8
>>> sum(tuple2,10)
18.799999999999997
>>> list1=
>>> sum(list1)
8.8
>>> sum(list1,10)
18.799999999999997
以上是idle中的结果,想请教各位大神, 为什么sum函数中求和后再与第二个参数相加,结果不是18.8而是18.799999999999997呢?求助各路大神!~ 浮点数运算的精度丢失问题,你可以不管它,感兴趣的话可以搜一下这方面的内容
sum(, 10)相当于10 + 3.1 + 2.3 + 3.4
你用10 + 3.1 + 2.3 + 3.4结果也是18.799999999999997的,
3.1 + 2.3 + 3.4 + 10结果又是另一种,你可以试试 isdkz 发表于 2022-1-27 21:35
浮点数运算的精度丢失问题,你可以不管它,感兴趣的话可以搜一下这方面的内容
sum(, 10)相 ...
感谢大佬解答!!! isdkz 发表于 2022-1-27 21:35
浮点数运算的精度丢失问题,你可以不管它,感兴趣的话可以搜一下这方面的内容
sum(, 10)相 ...
那请问大神:浮点数转换为二进制时已经出现了精度丢失,我搜索了一下可以使用Decimal避免。那为什么这个例子中最后加10 就没有这个问题了呢? 之前计算机组成原理的课的时候老师好像有说过只有浮点数和浮点数运算才有可能会发生精度丢失的,至于原因是什么我有点忘了,你可以自己找一下
加法运算是从前面往后面算的,3.1 + 2.3 + 3.4 没有发生精度丢失,自然它们的结果与10(一个整数)相加肯定是不会发生精度丢失的
10 + 3.1 + 2.3 + 3.4 是在 13.1 + 2.3 的时候发生的精度丢失
页:
[1]