和有什么区别
.3+.3+.3+.1 == 1
返回 false,而
.3+.3+.1+.3 == 1
返回真?这也适用于 Python。
和有什么区别
.3+.3+.3+.1 == 1
返回 false,而
.3+.3+.1+.3 == 1
返回真?这也适用于 Python。
这是由于浮点运算。您可以使用ieee754函数查看浮点表示。
>> ieee754(.3+.3+.3+.1)
ans =
0011111111101111111111111111111111111111111111111111111111111111
>> ieee754(.3+.3+.1+.3)
ans =
0011111111110000000000000000000000000000000000000000000000000000
这是一般有限精度算术的一般结果。以给定精度表示的可能浮点数集仅形成所有实数集的子集。因此,只有那些精确等于计算机上可用浮点表示的有限数量的数字。因此,除非您的数字之一与其有限精度表示完全相同,否则在内存中表示为字节的实际数字实际上只是一个近似值。然后,在使用这些数字执行算术运算时,您将得到错误传播。对数值分析进行一些研究,以便对此类事物进行更全面和更精确的定义。