嗨,我在 java 中遇到了一个我无法调试的问题。
我已将双变量设置为
double minMean = (Double.MIN_VALUE);
我有另一个双变量
double mean = -5000;
当我尝试以下条件时
if( mean>minMean)
print mean
“打印平均值”行没有被执行。任何指示为什么这不起作用,
Double.MIN_VALUE
是最小的正值。最小的有限负值只是前面Double.MAX_VALUE
带有符号:-
double minMean = -Double.MAX_VALUE;
IEEE 754浮点数的 MSB 位保留为符号位。因此,您拥有与负数相同数量的正数。您只需要翻转符号位即可获得负值。
从以下文档Double.MIN_VALUE
:
A constant holding the smallest positive nonzero value of type double, 2-1074
由于您的数字为负数,因此不会更大。
您误解了 MIN_VALUE 的含义:
MIN_VALUE
一个保持双精度类型的最小正非零值 2-1074 的常数。
最小的正数,即MIN_VALUE > 0
我试过了,发现
System.out.println("Min value is "+Double.MIN_VALUE);
最小值为 4.9E-324
您的打印命令未执行,因为您没有。更大。