Possible Duplicate:
Addition for BigDecimal
I feel like I'm missing something obvious, but cannot figure out what it is. I'm trying to use BigDecimal
to get the decimal portion of a division between two numbers. A very simple case, 1.00 divided by 3.00 should be 0.(3) repeating. However, I keep getting a result of 1.00.
BigDecimal num = new BigDecimal(1.00).setScale(2);
BigDecimal divisor = new BigDecimal(3.00).setScale(2);
num.divide(divisor, BigDecimal.ROUND_HALF_UP);
System.out.print(num);
My result is 1.00 and I can't figure out why?
The result of num.divide
is ignored. You need to set that back into a variable
BigDecimal num = new BigDecimal(1.00).setScale(2);
BigDecimal divisor = new BigDecimal(3.00).setScale(2);
BigDecimal result = num.divide(divisor, BigDecimal.ROUND_HALF_UP);
System.out.print(result);
This prints 0.33