请考虑以下代码:
0.1 + 0.2 == 0.3 -> false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2 -> 0.30000000000000004
Run Code Online (Sandbox Code Playgroud)
为什么会出现这些不准确之处?
为什么math
模块返回错误的结果?
A = 12345678917
print 'A =',A
B = sqrt(A**2)
print 'B =',int(B)
Run Code Online (Sandbox Code Playgroud)
结果
A = 12345678917
B = 12345678917
Run Code Online (Sandbox Code Playgroud)
到这里,结果是正确的。
A = 123456758365483459347856
print 'A =',A
B = sqrt(A**2)
print 'B =',int(B)
Run Code Online (Sandbox Code Playgroud)
结果
A = 123456758365483459347856
B = 123456758365483467538432
Run Code Online (Sandbox Code Playgroud)
这里的结果是不正确的。
为什么会这样?