今天被math的一个很重要的函数难住了,希望能得到大佬的解答。
import math
print(math.fsum([0.1, 0.2, 0.3]))
print(math.fsum([0.1, 0.2, 0.4]))
输出是
0.6
0.7000000000000001
不太懂,fsum函数应当得到精确的浮点数,比如0.6,为什么下面就不是了呢?
我还试了其他组合,把0.4换成0.5、0.6等等,能得到精确浮点数,但换成1.x后也会出现这样的问题,比如换成1.1,0.1+0.2+1.1的结果是1.400000000000001。
这是为什么呢?Empty Head里面有着Big Big Question……