我用Java编写了以下代码;
BigDecimal price; // assigned elsewhere
if (price.compareTo(new BigDecimal("0.00")) == 0) {
return true;
}
编写if条件的最佳方式是什么?
发布于 2012-08-31 05:38:40
或者,可以使用signum():
if (price.signum() == 0) {
return true;
}
发布于 2012-06-08 22:38:49
有一个可以检查的常量:
someBigDecimal.compareTo(BigDecimal.ZERO) == 0
发布于 2012-06-08 22:51:15
或者,我认为值得一提的是BigDecimal are not consistent with each other类中的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
变量中的小数位数,否则会得到意想不到的结果。
https://stackoverflow.com/questions/10950914
复制相似问题