How can I compare if BigDecimal value is greater than zero?

3

7 Answers

It's as simple as:

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

The documentation for compareTo actually specifies that it will return -1, 0 or 1, but the more general Comparable<T>.compareTo method only guarantees less than zero, zero, or greater than zero for the appropriate three cases - so I typically just stick to that comparison.

6

Possible better way:

if (value.signum() > 0) 

signum returns -1, 0, or 1 as the value of this BigDecimal is negative, zero, or positive.

8

Use compareTo() function that's built into the class.

it is safer to use the method compareTo()

 BigDecimal a = new BigDecimal(10); BigDecimal b = BigDecimal.ZERO; System.out.println(" result ==> " + a.compareTo(b)); 

console print

 result ==> 1 

compareTo() returns

  • 1 if a is greater than b
  • -1 if a is less than b
  • 0 if a is equal to b

now for your problem you can use

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

or

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

I hope it helped you.

using ".intValue()" on BigDecimal object is not right when you want to check if its grater than zero. The only option left is ".compareTo()" method.

This works in Kotlin:

value > BigDecimal.ZERO

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy