比较BigDecimal是否大于0

如何比较BigDecimal值是否大于0 ?

390082 次浏览

其实很简单:

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

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

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

可能更好的方法:

if (value.signum() > 0)

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

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

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

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

我希望这对你有所帮助。

这在芬兰湾的科特林中有效:

价值比;BigDecimal。零