检查double值是否大于零的简单方法

时间:2016-08-19 13:57:37

标签: java double comparator

我有一个双变量( employeeSalary ),我想检查这个值是否大于(>)零( 0 )。我可以想到编写这段代码非常天真的方式,但我不确定对于 double 数据类型这是否是正确的写入方式。

if(employeeSalary > 0){
  // Employee salary is greater than zero.
}else{
  // Employee salary is less than or equal to zero.
}

有人可以告诉我这种方法是否有效吗?

2 个答案:

答案 0 :(得分:2)

比较double值时存在危险区域,但使用><不是问题。您的代码应该可以正常运行。

但是,您应谨慎使用==,因为有许多边缘情况,其中似乎0的数字不是(例如-0.0)而且数字是有效的零(例如0.0000...001)但与== 0比较将失败。

答案 1 :(得分:2)

如果您只想比较原语,您当然可以执行以下操作:

if(employeeSalary > 0.0){
  // Employee salary is greater than zero.
}else{
  // Employee salary is less than or equal to zero.
}

请注意,如果employeeSalary是double(primitive),那么你应该将它与其他double而不是int进行比较。

您也可以使用一对Double静态方法来执行相同的操作

// assuming employeeSalary is a double

    if(Double.compare(employeeSalary, Double.valueOf(0.0)) > 0 ){
          // Employee salary is greater than zero.
        }else{
          // Employee salary is less than or equal to zero.
        }

请参阅:https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#compare(double,%20double)