有人可以解释一下为什么下面的代码表现得像它一样吗? (这是Windows7 x64上命令行中的Python)
>>>2.22 + 0.22
2.44000000000000004
>>>(222+22)/100
2.44
答案 0 :(得分:5)
浮点运算的精度有限,而在python中,这些限制已有详细记载。你可以阅读它here
答案 1 :(得分:3)
所有浮点数学都是这样的,并且基于IEEE标准。
答案 2 :(得分:3)
答案 3 :(得分:1)
这是由数据格式造成的。
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
答案 4 :(得分:0)
您要添加的数字是 float 格式。这意味着它有小数位。第二行数学的数字都是整数,因此它们是整数形式。已知浮点形式在执行数学方程式时会抛出错误。