check Equal and Not Equal conditons for double val

2019-04-10 15:47发布

I am facing difficulty in comparing two double values using == and !=.

I have created 6 double variables and trying to compare in If condition.

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
}

Though my condition is a and b are equal control is going to else if part

So I have tried a.equals(b) for equal condition, Which is working fine for me.

My query here is how can I check a not equal b.. I have googled a lot but I found only to use != but somehow this is not working for me.

Experts please help me to overcome this.

Thanks for your time.

2条回答
淡お忘
2楼-- · 2019-04-10 16:13

If you're using a double (the primitive type) then a and b must not be equal.

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

If .equals() works you're probably using the object wrapper type Double. Also, the equivalent of != with .equals() is

!a.equals(b)

Edit

Also,

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

(Unless I'm missing something) should just be

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

if you really want invert your test conditions and test again,

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

Or use De Morgan's Laws

 else if (a != b && c != d && e != f)
查看更多
Luminary・发光体
3楼-- · 2019-04-10 16:17

You can use

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

Well with double data type you can use

 ==,!= (you should try to use these first.. )
查看更多
登录 后发表回答