如何在Double變量上執行小於或等於條件檢查。雙變量條件檢查是否大於或等於?
我有兩個變量第一,第二。
Double first = 20.0;
Double second = 20.0;
if(first <= second){
//This is not going inside the if part
}
如何在Double變量上執行小於或等於條件檢查。雙變量條件檢查是否大於或等於?
我有兩個變量第一,第二。
Double first = 20.0;
Double second = 20.0;
if(first <= second){
//This is not going inside the if part
}
可能是浮點表示的固有不準確性。請參閱Why am I getting the wrong result when using float?許多其他類似問題
不確定是否屬於這種情況,但浮點永遠不會在內存中完全表示。雖然這兩個值彼此非常接近,但可能發生的情況是第一個比第二個稍大,導致if條件爲假。
*它們*完全在內存中表示 - 它只是確切的值可能是對原始數據的近似值。例如,'double d = 0.1;'中表示的數字是一個確切值 - 但它不完全是0.1。 – 2010-11-19 09:53:34
是您使用的確切代碼還是涉及的中間計算? – 2010-11-19 09:44:05
它看起來很好。哪裏有問題? – 2010-11-19 09:44:20