'Compare if BigDecimal is greater than zero
How can I compare if BigDecimal value is greater than zero?
Solution 1:[1]
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.
Solution 2:[2]
if (value.signum() > 0)
signum returns -1, 0, or 1 as the value of this BigDecimal is negative, zero, or positive.
Solution 3:[3]
Use compareTo() function that's built into the class.
Solution 4:[4]
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.
Solution 5:[5]
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.
Solution 6:[6]
This works in Kotlin:
value > BigDecimal.ZERO
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Jon Skeet |
| Solution 2 | EvilTak |
| Solution 3 | Mariusz Jamro |
| Solution 4 | Ajay Takur |
| Solution 5 | Satya M |
| Solution 6 |
