为什么Double的min值返回0.0

Aaj*_*jan 1 java

为什么以下程序输出为0.0.它是返回Double的最小值.

public class Test {
    public static void main(String[] args){
        System.out.println(Math.min(Double.MIN_VALUE, 0.0d)); // 0.0
    }
}
Run Code Online (Sandbox Code Playgroud)

最小值接近于零,但为什么它给出0.0而不是精确值?

Yas*_*jaj 5

请参阅JavaDoc Double.MIN_VALUE

保持double类型的最小正非零值的常量,2-1074.它等于十六进制浮点字面值0x0.0000000000001P-1022,也等于Double.longBitsToDouble(0x1L).

0.0d 因此小于 Double.MIN_VALUE