嗨我正面临一个我无法调试的java问题。比较运算符问题
我已经设置了双变量
double minMean = (Double.MIN_VALUE);
我有另一双可变
double mean = -5000;
,当我尝试以下条件
if(mean>minMean)
print mean
行 “打印表示” 没有按不会被执行。任何这是为什么不工作的指针,
嗨我正面临一个我无法调试的java问题。比较运算符问题
我已经设置了双变量
double minMean = (Double.MIN_VALUE);
我有另一双可变
double mean = -5000;
,当我尝试以下条件
if(mean>minMean)
print mean
行 “打印表示” 没有按不会被执行。任何这是为什么不工作的指针,
Double.MIN_VALUE
是最小正值。所述minimim有限负值只是Double.MAX_VALUE
与前面-
符号:
double minMean = -Double.MAX_VALUE;
IEEE 754浮点数具有MSB位保留作为符号位。所以,你的正数与负数相同。您只需要翻转标志位即可获得负值。
我已经检查过我的代码'double minMean = -Double.MAX_VALUE;'也不适用于相同的代码。 –
'-Double.MAX_VALUE'是最少的有限值。实际最小值是-infinity。 –
从Double.MIN_VALUE
文档:
A constant holding the smallest positive nonzero value of type double, 2-1074
由于您的数字为负也不会大。
感谢亨利,有没有什么办法可以获得最低的负值 –
你可以试试' - Double.MAX_VALUE' – Henry
你错以MIN_VALUE的含义:
MIN_VALUE
的常量保持类型的最小正非零值加倍,2-1074。
最小正,即MIN_VALUE > 0
我尝试这样做,发现
System.out.println("Min value is "+Double.MIN_VALUE);
最小值是4.9E-324
您的打印命令,不是因为你没有执行。更大。
我想检查一下条件,我在if block中做了一些操作,我的问题是:为什么这个条件是错误的 –
'print mean' id是一个死代码,它永远不会去那个语句,因为mean
Joshi