请考虑以下代码:
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)
为什么会出现这些不准确之处?
说我有:
float a = 3 // (gdb) p/f a = 3
float b = 299792458 // (gdb) p/f b = 299792448
Run Code Online (Sandbox Code Playgroud)
然后
float sum = a + b // (gdb) p/f sum = 299792448
Run Code Online (Sandbox Code Playgroud)
我认为它与尾数移动有关.有人能解释到底发生了什么吗?32位