我有以下代码在Java;
BigDecimal price; // assigned elsewhere
if (price.compareTo(new BigDecimal("0.00")) == 0) {
return true;
}
写if条件的最好方法是什么?
我有以下代码在Java;
BigDecimal price; // assigned elsewhere
if (price.compareTo(new BigDecimal("0.00")) == 0) {
return true;
}
写if条件的最好方法是什么?
当前回答
有一个静态常数表示0:
BigDecimal.ZERO.equals(selectPrice)
你应该这样做,而不是:
selectPrice.equals(BigDecimal.ZERO)
以避免selectPrice为空的情况。
其他回答
我通常使用以下方法:
if (selectPrice.compareTo(BigDecimal.ZERO) == 0) { ... }
有一个静态常数表示0:
BigDecimal.ZERO.equals(selectPrice)
你应该这样做,而不是:
selectPrice.equals(BigDecimal.ZERO)
以避免selectPrice为空的情况。
另外,我认为值得一提的是,BigDecimal类中的equals和compareTo方法的行为彼此不一致。
这基本上意味着:
BigDecimal someValue = new BigDecimal("0.00");
System.out.println(someValue.compareTo(BigDecimal.ZERO) == 0); // true
System.out.println(someValue.equals(BigDecimal.ZERO)); // false
因此,您必须非常小心someValue变量中的比例,否则您将得到意想不到的结果。
BigDecimal.ZERO.setScale(2).equals(new BigDecimal("0.00"));
if(price.floatValue() == 0){
return true; //works for 0\0.0
}