为什么 -(Double.MAX_VALUE) 小于 Double.MIN_VALUE?

Why is -(Double.MAX_VALUE) smaller than Double.MIN_VALUE?

public class test {
    public static void main(String[] args) {

        double num = -Double.MAX_VALUE;
        double num1 = Double.MIN_VALUE;

        if (num < num1)
            System.out.println("num");
        else
            System.out.println("num1");
        
    }
}

我写这段代码是为了检查哪个更小,它是 return num,我想知道为什么它是双精度而不是整数?

https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html

Double.MAX_VALUE 是 double 可以容纳的最大有限数。 (一个非常大的正数。)

Double.MIN_VALUE是double能容纳的最小正数。 (一个非常小的正数。)

所以-Double.MAX_VALUE是一个非常大的负数。这比一个非常小的正数要小。

相反,Integer.MIN_VALUE 是 int 可以容纳的最大负数。它与 Double 中同名常量的含义不同。

the Javadoc of Double所述:

  • MAX_VALUE 是“一个常量,保持双精度类型的最大正有限值,(2-2-52)·21023.",即一个大的正数。
  • MIN_VALUE 是“一个保持最小正非零值的常量,double 类型,2-1074”,即一个小的正数。

因此,-MAX_VALUE 是一个大负数,小于零,小于一个小正数 number.small 正数。