How can I compare if BigDecimal value is greater than zero?
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.
if (value.signum() > 0) signum returns -1, 0, or 1 as the value of this BigDecimal is negative, zero, or positive.
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