首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在java中检查BigDecimal变量==是否为0?

如何在java中检查BigDecimal变量==是否为0?
EN

Stack Overflow用户
提问于 2012-06-08 22:36:12
回答 11查看 301.3K关注 0票数 246

我用Java编写了以下代码;

代码语言:javascript
复制
BigDecimal price; // assigned elsewhere

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

编写if条件的最佳方式是什么?

EN

回答 11

Stack Overflow用户

发布于 2012-08-31 05:38:40

或者,可以使用signum()

代码语言:javascript
复制
if (price.signum() == 0) {
    return true;
}
票数 113
EN

Stack Overflow用户

发布于 2012-06-08 22:38:49

有一个可以检查的常量:

代码语言:javascript
复制
someBigDecimal.compareTo(BigDecimal.ZERO) == 0
票数 26
EN

Stack Overflow用户

发布于 2012-06-08 22:51:15

或者,我认为值得一提的是BigDecimal are not consistent with each other类中的equals和compareTo方法的行为。

这基本上意味着:

代码语言:javascript
复制
BigDecimal someValue = new BigDecimal("0.00");
System.out.println(someValue.compareTo(BigDecimal.ZERO) == 0); // true
System.out.println(someValue.equals(BigDecimal.ZERO)); // false

因此,必须非常小心地使用someValue变量中的小数位数,否则会得到意想不到的结果。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10950914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档