java 比较BigDecimal是否大于零

r6hnlfcb  于 2023-08-02  发布在  Java
关注(0)|答案(9)|浏览(178)

如果BigDecimal的值大于零,如何比较?

rqqzpn5f

rqqzpn5f1#

就像这样简单:

if (value.compareTo(BigDecimal.ZERO) > 0)

字符串
compareTo的文档实际上指定了它将返回-1,0或1,但更通用的Comparable<T>.compareTo方法只保证在适当的三种情况下小于零,零或大于零-所以我通常只坚持这种比较。

uidvcgyl

uidvcgyl2#

可能更好的方法:

if (value.signum() > 0)

字符串
signum返回-1、0或1,因为此BigDecimal的值是负数、零或正数。

pprl5pva

pprl5pva3#

使用方法compareTo()更安全

BigDecimal a = new BigDecimal(10);
    BigDecimal b = BigDecimal.ZERO;

    System.out.println(" result ==> " + a.compareTo(b));

字符串
控制台打印

result ==> 1


compareTo()返回

*1如果a大于B
*-1如果a小于B
*0如果a等于B

现在对于你的问题你可以使用

if (value.compareTo(BigDecimal.ZERO) > 0)


或者是

if (value.compareTo(new BigDecimal(0)) > 0)


希望对你有帮助。

wnvonmuf

wnvonmuf4#

使用类中内置的compareTo()函数。

rggaifut

rggaifut5#

当你想检查BigDecimal对象是否大于零时,在BigDecimal对象上使用“.intValue()”是不正确的。剩下的唯一选项是“.compareTo()”方法。

kkih6yb8

kkih6yb86#

这在Kotlin中有效:
value > BigDecimal.ZERO

3pmvbmvn

3pmvbmvn7#

也许吧

BigDecimal a = new BigDecimal(10);
if(a.abs().equals(a)){
   // positive

}else {
   // negative
}

字符串
当然,上面的不包括零的情况。

xxb16uws

xxb16uws8#

我个人使用BigDecimal.ZERO来检查我的值是否大于零(0)。而且效果非常好。我认为这个选择非常合适。或者你可以使用signum(),它也工作得很好。

for (int i = 0; i < this.listTypes.size(); i++) {
            if (this.listTypes.get(i).isAutorise()
                    && this.listTypes.get(i).getPlafond() != null
                    && this.listTypes.get(i).getPlafond().compareTo(BigDecimal.ZERO) > 0) {
                this.listTypes.get(i).setProcuration(this.entity);
                this.listTypes.get(i).setActeur(this.entity.getMandataire());
                this.acteurTypeOperationService.addOne(this.listTypes.get(i));
            }
        }

字符串

tf7tbtn2

tf7tbtn29#

BigDecimal obj = new BigDecimal("100");
 if(obj.intValue()>0)
    System.out.println("yes");

字符串

相关问题