java Double。最小值未按预期工作
我有下面的代码,但当mutuaInformation
为零时,它不会通过if。知道怎么回事吗
int largestEntropyIndex = Integer.MIN_VALUE;
double largestMutualInfomation = Double.MIN_VALUE;
for (int i = 0; i < attributes.size(); i++) {
String attrName=this.attributes.get(i);
double conditionalEntropy = calcConditionalEntropy(i,
instances,
this.attributeValues.get(attrName).size(),
this.labels.size());
System.out.println("conditional entropy is: "+conditionalEntropy);
double mutualInformation = entropy - conditionalEntropy;
if (mutualInformation > largestMutualInfomation){
largestMutualInfomation = mutualInformation;
largestEntropyIndex = i;
}
# 1 楼答案
执行简单的代码,你就会得到它
输出是
如您所见
Double.MIN_VALUE
的值大于0。因此你会注意到这种行为# 2 楼答案
常数
Double.MIN_VALUE
等于4.9E-324
。虽然很小,但仍然大于绝对值0