sch*_*erm 2 python matlab ieee-754 floating-point-precision
有什么区别
.3+.3+.3+.1 == 1
Run Code Online (Sandbox Code Playgroud)
返回false,而
.3+.3+.1+.3 == 1
Run Code Online (Sandbox Code Playgroud)
返回true?这也适用于Python.
这是由浮点运算引起的.您可以使用ieee754函数查看浮点表示.
>> ieee754(.3+.3+.3+.1)
ans =
0011111111101111111111111111111111111111111111111111111111111111
>> ieee754(.3+.3+.1+.3)
ans =
0011111111110000000000000000000000000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)