为什么以下程序输出为0.0。它将返回Double的最小值。
public class Test {
public static void main(String[] args){
System.out.println(Math.min(Double.MIN_VALUE, 0.0d)); // 0.0
}
}
最小值接近零,但为什么它给出0.0而不是精确值?
答案 0 :(得分:5)
请参阅JavaDoc以了解Double.MIN_VALUE
持有最小 类型为double 的正非零值的常量, 2-1074。它等于十六进制浮点字面值 0x0.0000000000001P-1022也等于 Double.longBitsToDouble(0x1L)。
0.0d
因此小于Double.MIN_VALUE