Java 将两个整数除以一个大小数
我正在进行一个实验,在这个实验中,我们偶尔需要将小数字除以大数字,例如:4/90000。使用double可生成4.444e。我希望BigDecimal可以处理这个算法,并给我一个有意义的小数,但我的实现抛出了一个错误:Java 将两个整数除以一个大小数,java,bigdecimal,Java,Bigdecimal,我正在进行一个实验,在这个实验中,我们偶尔需要将小数字除以大数字,例如:4/90000。使用double可生成4.444e。我希望BigDecimal可以处理这个算法,并给我一个有意义的小数,但我的实现抛出了一个错误: int count = 4; int total = 90,000; er = BigDecimal.valueOf(count).divide(BigDecimal.valueOf(total)); 错误是: Exception in thread "main" java.l
int count = 4;
int total = 90,000;
er = BigDecimal.valueOf(count).divide(BigDecimal.valueOf(total));
错误是:
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
at java.math.BigDecimal.divide(BigDecimal.java:1616)
更新:我对精度至少有3位小数很感兴趣 您可以向division方法调用传递一个。大概
int count = 4;
int total = 90000;
BigDecimal er = BigDecimal.valueOf(count).divide(BigDecimal.valueOf(total),
MathContext.DECIMAL128);
System.out.println(er);
我得到
0.00004444444444444444444444444444444444