在下面的程序中,结果被认为0.0是小于Double.MIN_VALUE.为什么?
我们有一个解决方案(Doubles仅使用和使用compareTo),我想了解为什么拆箱在这里失败.
import java.util.Date;
import java.util.Calendar;
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
double max = 99999.9999;
double min = Double.MIN_VALUE;
Double test = 0.0;
System.out.println(max > test); // expect true; is true
System.out.println(test > min); // expect true; is false
}
}
Run Code Online (Sandbox Code Playgroud)
您应该阅读Double.MIN_VALUE规范.它是最小可能但正双值,这意味着它大于0.0.
A constant holding the smallest positive nonzero value of type double, 2-1074.
It is equal to the hexadecimal floating-point literal 0x0.0000000000001P-1022
and also equal to Double.longBitsToDouble(0x1L).
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |