小编use*_*184的帖子

仅当小数重复时才设置BigDecimal精度

我知道我可以使用BigDecimal.divide()方法来设置固定的精度:

BigDecimal a1 = new BigDecimal(1);
BigDecimal a2 = new BigDecimal(3);
BigDecimal division = a1.divide(a2,5,1); //equals 0.33333
Run Code Online (Sandbox Code Playgroud)

但如果除法结果是准确的:

BigDecimal a1 = new BigDecimal(1);
BigDecimal a2 = new BigDecimal(4);
BigDecimal division = a1.divide(a2,5,1); //equals 0.25000
Run Code Online (Sandbox Code Playgroud)

如何设置除法结果,如果除法以精确结果结束,它将只输出0.25而不是0.25000?

我还试图通过这样做来指定精度:

BigDecimal division = a1.divide(a2);
Run Code Online (Sandbox Code Playgroud)

它在执行0.25时成功地给出了结果1/4,但是当它像分区一样1/3或者2/3它导致运行时ArithmeticException.

a1a2从用户输入实例化.

有什么方法可以解决这个问题吗?

java precision bigdecimal

3
推荐指数
1
解决办法
658
查看次数

标签 统计

bigdecimal ×1

java ×1

precision ×1