sku*_*mar 0 java floating-point
我们如何在Java中检查负数是否超出float变量的范围?
如果我使用Float.parseFloat("1.4E-46"),它返回0.0而不是负无穷大.在正数较大的情况下,它返回无限.
以下代码适用于正数,我看起来类似负数.
Float f = Float.valueOf(Float.parseFloat(input));
if (f.floatValue() > Float.MAX_VALUE) {
return false;
}
Run Code Online (Sandbox Code Playgroud)
如果我使用Float.parseFloat("1.4E-46"),它返回0.0而不是负无穷大.在正数较大的情况下,它返回无限.
该数字1.4E-46
是不是负数.这是一个非常小的正数.
相反的1.4E+46
是-1.4E+46
.所以,如果你这样做,Float.valueOf("-1.4E+46")
你会得到-Infinity
.