BigDecimal除以大量小数位

时间:2015-11-24 08:46:21

标签: java bigdecimal

我的问题很简单

BigDecimal我想这样做:

public static void main (String [] args) {
    System.out.println(new BigDecimal(1).divide(new BigDecimal(3));
}

我希望结果如下:0.333333333333333333333333333333333....... 而不是0.33340.33

1 个答案:

答案 0 :(得分:4)

所有BigDecimal操作都允许设置精度(小数点后的位数)和舍入模式。

System.out.println(
    new BigDecimal(1).divide(new BigDecimal(3), 10, RoundingMode.HALF_UP));

将输出0.3333333333。您可以创建MathContext对象来封装此信息。这很有用,因为您通常需要使用相同的精度和舍入设置执行多个操作。

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));