如何检查在Java中BigDecimal变量== 0?

我在Java中有以下代码:

BigDecimal price; // assigned elsewhere

if (price.compareTo(new BigDecimal("0.00")) == 0) {
    return true;
}

什么是写if条件的最好方法?

使用BigDecimal常数BigDecimal.ZERO

if (new BigDecimal(someprice).compareTo(BigDecimal.ZERO) == 0) // see below

这避免了为每个调用为零构建一个新的BigDecimal。

FYI,BigDecimal也有常量BigDecimal.ONEBigDecimal.TEN

注意!

方法BigDecimal.equals()考虑规模:

new BigDecimal( "0" ).equals( BigDecimal.ZERO) // true
new BigDecimal( "0.00" ).equals( BigDecimal.ZERO) // false!

所以它不适合这种比较。但是,BigDecimal.compareTo()在比较时不考虑比例:

new BigDecimal( "0" ).compareTo( BigDecimal.ZERO) == 0 // true
new BigDecimal( "0.00" ).compareTo( BigDecimal.ZERO) == 0 // true
http://stackoverflow.com/questions/10950914/how-to-check-if-bigdecimal-variable-0-in-java

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何检查在Java中BigDecimal变量== 0?