我知道我可以使用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.
a1并a2从用户输入实例化.
有什么方法可以解决这个问题吗?