Math.max似乎正在回答错误的答案

时间:2010-09-15 12:42:14

标签: java math max

我有一个双值列表,我不知道其范围,我想找到最大值。但是,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被认为是最大值。

为什么?

3 个答案:

答案 0 :(得分:16)

MIN_VALUE是:

  

一个常量,保持double类型的最小正非零值,2 ^( - 1074)。

不是最负面的可能值。

答案 1 :(得分:0)

很明显-100小于4.9E-324

-100 , -99 ..... -1 , 0 , 4.9E-324 , 1 , 2 , 3......

答案 2 :(得分:0)

MIN_VALUE一个常量,保持double类型的最小正非零值。

注意“正面”值。

您正在将其与负值进行比较是1> -1