比较BigDecimal是否大于零

时间:2010-11-12 12:18:01

标签: java compare bigdecimal

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

8 个答案:

答案 0 :(得分:346)

这很简单:

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

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

答案 1 :(得分:147)

Possible better way

if (value.signum() > 0)

答案 2 :(得分:10)

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

答案 3 :(得分:3)

使用方法compareTo()

更安全
    BigDecimal a = new BigDecimal(10);
    BigDecimal b = BigDecimal.ZERO;

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

控制台打印

    result ==> 1

compareTo()返回

  • 1 (如果a大于b
  • -1 (如果b小于b
  • 0 ,如果a等于b

现在就可以使用您的问题

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

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

我希望它能对您有所帮助。

答案 4 :(得分:0)

使用&#34; .intValue()&#34;当你想检查它的grater是否为零时,在BigDecimal对象上是不对的。剩下的唯一选择是&#34; .compareTo()&#34;方法

答案 5 :(得分:0)

这也可行:

value> BigDecimal.ZERO

答案 6 :(得分:-1)

为什么它不能像

那么简单
if(bigDecimalObject.intValue() > 0)

答案 7 :(得分:-4)

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