Is double 0.0 is greater or less than 0 in java

独自空忆成欢 提交于 2019-12-23 06:21:51

问题


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?


回答1:


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'




回答2:


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




回答3:


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
}


来源:https://stackoverflow.com/questions/37473679/is-double-0-0-is-greater-or-less-than-0-in-java

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!