双变量条件检查是否大于或等于?

问题描述:

如何在Double变量上执行小于或等于条件检查。双变量条件检查是否大于或等于?

我有两个变量第一,第二。

Double first = 20.0; 
Double second = 20.0; 
if(first <= second){ 
    //This is not going inside the if part 
} 
+2

是您使用的确切代码还是涉及的中间计算? – 2010-11-19 09:44:05

+1

它看起来很好。哪里有问题? – 2010-11-19 09:44:20

可能是浮点表示的固有不准确性。请参阅Why am I getting the wrong result when using float?许多其他类似问题

不确定是否属于这种情况,但浮点永远不会在内存中完全表示。虽然这两个值彼此非常接近,但可能发生的情况是第一个比第二个稍大,导致if条件为假。

+1

*它们*完全在内存中表示 - 它只是确切的值可能是对原始数据的近似值。例如,'double d = 0.1;'中表示的数字是一个确切值 - 但它不完全是0.1。 – 2010-11-19 09:53:34