Java 将两个整数除以一个大小数

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

我正在进行一个实验,在这个实验中,我们偶尔需要将小数字除以大数字,例如: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.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