My question is very simple
In BigDecimal
I want to do this:
public static void main (String [] args) {
System.out.println(new BigDecimal(1).divide(new BigDecimal(3));
}
I want the result to be this : 0.333333333333333333333333333333333.......
and not 0.3334
or 0.33
.
All BigDecimal operations allow to set precision (number of digits after decimal point) and rounding mode.
System.out.println(
new BigDecimal(1).divide(new BigDecimal(3), 10, RoundingMode.HALF_UP));
will output 0.3333333333
. You can create a MathContext object to encapsulate this information. This is helpful since you typically need to do several operations with the same precision and rounding settings.
MathContext mc = new MathContext(10, RoundingMode.HALF_UP);
System.out.println(new BigDecimal(1).divide(new BigDecimal(3), mc));
System.out.println(new BigDecimal(1).divide(new BigDecimal(9), mc));