具有大量小数位的 BigDecimal 除法
BigDecimal divide with a large number of decimal places
我的问题很简单
在BigDecimal
我想这样做:
public static void main (String [] args) {
System.out.println(new BigDecimal(1).divide(new BigDecimal(3));
}
我希望结果是这样的:0.333333333333333333333333333333333.......
而不是 0.3334
或 0.33
.
所有 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));
我的问题很简单
在BigDecimal
我想这样做:
public static void main (String [] args) {
System.out.println(new BigDecimal(1).divide(new BigDecimal(3));
}
我希望结果是这样的:0.333333333333333333333333333333333.......
而不是 0.3334
或 0.33
.
所有 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));