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


当前回答

可能更好的方法:

if (value.signum() > 0)

当BigDecimal的值为负、零或正时,signum返回-1、0或1。

其他回答

其实很简单:

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

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

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

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

可能更好的方法:

if (value.signum() > 0)

当BigDecimal的值为负、零或正时,signum返回-1、0或1。

使用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)

我希望这对你有所帮助。