有人可以解释一下为什么下面的代码表现得像这样吗?(它是 Windows7 x64 命令行中的 Python)
>>>2.22 + 0.22
2.44000000000000004
>>>(222+22)/100
2.44
有人可以解释一下为什么下面的代码表现得像这样吗?(它是 Windows7 x64 命令行中的 Python)
>>>2.22 + 0.22
2.44000000000000004
>>>(222+22)/100
2.44
浮点运算在精度上是有限的,而在 python 中,这些限制是有据可查的。你可以在这里阅读
所有的浮点数学都是这样的,并且基于 IEEE 标准。
这是由于数据格式。
2.22 + 0.22 != 2.44 // both are float
// when you use them to calculate, they are giving consistently "wrong" results
// because the datatype in itself gets incorrect when moving into deep comma space
(222+22) / 100 // becomes this in calculation
222+22 = 244 --> 244/100 = 2.44
您添加的数字是浮点格式。这意味着它有小数位。数学的第二行数字都是整数,所以它们是整数形式。众所周知,浮点形式在执行数学方程式时会引发错误。