我有一个双值列表,我不知道其范围,我想找到最大值。但是,Math.max函数为此示例代码提供了一个奇怪的结果:
double a = -100.0;
double maxA = Double.MIN_VALUE;
maxA = Math.max(maxA, a);
System.out.println(maxA);
输出是:
4.9E-324
因此,出于某种原因,与-100.0相比,Double.MIN_VALUE被认为是最大值。
为什么?
答案 0 :(得分:16)
答案 1 :(得分:0)
很明显-100小于4.9E-324
-100 , -99 ..... -1 , 0 , 4.9E-324 , 1 , 2 , 3......
答案 2 :(得分:0)
MIN_VALUE一个常量,保持double类型的最小正非零值。
注意“正面”值。
您正在将其与负值进行比较是1> -1