1

嗨,我在 java 中遇到了一个我无法调试的问题。

我已将双变量设置为

double minMean = (Double.MIN_VALUE);

我有另一个双变量

double mean = -5000;

当我尝试以下条件时

  if( mean>minMean)
             print mean

“打印平均值”行没有被执行。任何指示为什么这不起作用,

4

4 回答 4

6

Double.MIN_VALUE是最小的正值。最小的有限负值只是前面Double.MAX_VALUE带有符号:-

double minMean = -Double.MAX_VALUE;

IEEE 754浮点数的 MSB 位保留为符号位。因此,您拥有与负数相同数量的正数。您只需要翻转符号位即可获得负值。

于 2013-10-04T08:35:21.420 回答
4

从以下文档Double.MIN_VALUE

A constant holding the smallest positive nonzero value of type double, 2-1074

由于您的数字为负数,因此不会更大。

于 2013-10-04T08:32:33.530 回答
4

您误解了 MIN_VALUE 的含义:

MIN_VALUE

一个保持双精度类型的最小正非零值 2-1074 的常数。

最小的正数,即MIN_VALUE > 0

于 2013-10-04T08:33:06.580 回答
0

我试过了,发现

System.out.println("Min value is "+Double.MIN_VALUE);

最小值为 4.9E-324

您的打印命令未执行,因为您没有。更大。

于 2013-10-04T08:38:07.133 回答