smu*_*kes 1 java floating-point floating-accuracy floating-point-precision
在我的调试器中,我可以看到以下值:
float min = -3.1931721E38
float max = 3.3434891E38
float temp = (max-min);
Run Code Online (Sandbox Code Playgroud)
这导致无穷大.这是为什么?(2-2 ^ 23)·2 ^ 127比临时变量大吗?
该减法的数学结果大于最大可能Float
值Float.MAX_VALUE
.Java遵循IEEE浮点运算规则,导致Infinity
.
如果你想要结果,那么你可以使用double
s代替,它具有更高的精度和更大范围的有效值.