Sai Ye Yan Naing Aye
Sai Ye Yan Naing Aye

Reputation: 6738

Is double 0.0 is greater or less than 0 in java

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

Answers (3)

Timi
Timi

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

sonique
sonique

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

lostbard
lostbard

Reputation: 5220

Note that you are checking if diff > 0 - so if it IS zero, you are printing -0.0

Upvotes: 10

Related Questions