java - BigDecimal 除法具有大量小数位

标签 java bigdecimal

我的问题很简单

BigDecimal中我想这样做:

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

我希望结果是这样的:0.333333333333333333333333333333333...... 而不是 0.33340.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));

关于java - BigDecimal 除法具有大量小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33889019/

相关文章:

java - 在eclipse中运行tomcat上的maven项目时找不到请求资源404错误

java - 在java中实现Pi算法

jsf - JSF 页面上的 BigDecimal 算法

java - BigDecimal 除法、舍入和求和

java - 如何检查 Hashmap 值中的子字符串

java - Java中的Knight's Tour递归方法,代码执行卡在第5步(在25平方的棋盘上)?

java - 如何使 ActivityOptions 在工作流程中具有生命周期动态性

java - 如何从库接收字节来更新 JProgressBar?

java - BigDecimal HALF_UP 舍入问题

Java BigDecimal 可以用逗号代替点吗?