2014-07-23 99 views
4

我在使用==!=比較兩個double values時面臨困難。檢查雙值的等於和不等值條件

我已經創建了6個雙變量,並試圖在If條件下進行比較。

double a,b,c,d,e,f; 

if((a==b||c==d||e==f)) 
{ 
//My code here in case of true condition 
} 
else if ((a!=b||c!=d||e!=f)) 
{ 
//My code here in case false condition 
} 

雖然我的條件是a and b are equal控制是要else if部分

所以我試圖a.equals(b)平等的條件,這是對我工作的罰款。

我在這裏的查詢是如何檢查a not equal b ..我GOOGLE了很多,但我發現只使用!=,但不知何故這不適合我。

請專家幫我解決這個問題。

謝謝你的時間。

+5

如果'a.equals(b)'工作,請嘗試'!a.equals(b)'。 – Christian

+0

好的謝謝...我沒有得到這個想法將現在嘗試.. – Siva

+1

==應該工作,如果a和b相同,如果它不工作,.equals工作可能你已經創建雙變量而不是雙重 –

回答

5

如果您使用的是double(原始類型),則ab必須不相等。

double a = 1.0; 
double b = 1.0; 
System.out.println(a == b); 

如果.equals()工作你可能使用對象包裝類型Double。而且,!=.equals()相當於是

!a.equals(b) 

編輯

此外,

else if ((a!=b||c!=d||e!=f)) 
{ 
    //My code here in case false condition 
} 

(除非我失去了一些東西)應該只是

else 
{ 
    //My code here in case false condition 
} 

如果你真的想要顛倒你的tes PT條件並再次測試,

else if (!(a==b||c==d||e==f)) 

或者使用De Morgan's Laws

else if (a != b && c != d && e != f) 
+3

謝謝你爲我工作 – Siva

2

您可以使用

!a.equals(b) || !c.equals(d) || !e.equals(f) 

好雙倍數據類型可以使用

==,!= (you should try to use these first..)