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


当前回答

当你想检查BigDecimal对象是否大于0时,在BigDecimal对象上使用". intvalue()"是不正确的。剩下的唯一选项是". compareto()"方法。

其他回答

使用类内建的compareTo()函数。

其实很简单:

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

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

使用compareTo()方法更安全

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

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

控制台打印

    result ==> 1

compareTo()返回

如果a大于b,则为1 如果a小于b,则为-1 如果a = b是0

现在你可以用

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

or

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

我希望这对你有所帮助。

这在Kotlin中是有效的:

value > BigDecimal。零

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