Reputation: 6738
I would like to ask for more clarification. Here my sample program
double diff = 7.500 - 7.500;
System.out.println(diff); // result 0.0
if (diff > 0) {
System.out.println("+" + diff ); //result +0.0
} else {
System.out.println("-" + diff ); //result -0.0
}
My result is -0.0. My expectation is 0 == 0.0 then skip if else condition. But it enter to the else condition.Is double 0.0 is greater or less than 0?
Upvotes: 0
Views: 17201
Reputation: 892
this is my answer:
double diff = 7.500 - 7.500;
System.out.println(diff);
if(diff>0){
System.out.println("+"+diff);
}else if(diff<0){
System.out.println("-"+diff);
}else if(diff==0){
System.out.println("="+diff);
}
}
and my result is this :
0.0
=0.0
you must forget that the 0.0 equal 0 is 'else the 0.0 > 0' other the '0.0 >= 0'
Upvotes: 2
Reputation: 4762
In your case, you compare 0.0 to 0 using (greater) >
so 0.0 is not strictly greater than 0, (it is equal). Then your programme go to the else
section.
if(diff == 0 ) {
System.out.println("+" + diff ); //result 0.0
} else if (diff > 0) {
System.out.println("+" + diff ); //result +diff
} else { // diff is less than 0
System.out.println("-" + diff ); //result -diff
}
Upvotes: 4
Reputation: 5220
Note that you are checking if diff > 0 - so if it IS zero, you are printing -0.0
Upvotes: 10