Cha*_*dNC 24 java exception bigdecimal
我之前使用过BigDecimals但不经常使用BigDecimals,今天早上我正在处理一些事情并且我一直遇到以下异常:
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion;
no exact representable decimal result.
at java.math.BigDecimal.divide(BigDecimal.java:1594)
Run Code Online (Sandbox Code Playgroud)
我试图设置比例并使用舍入来消除这样的问题:
BigDecimal bd1 = new BigDecimal(1131).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal bd2 = new BigDecimal(365).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal bd3 = bd1.divide(bd2).setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println("result: " + bd3);
Run Code Online (Sandbox Code Playgroud)
但是,我一直得到同样的例外.有谁能告诉我我犯了哪个错误?
ass*_*ias 56
在使用时,如果确切结果具有无限小数(这是您的情况),divide则应使用a MathContext:
MathContext mc = new MathContext(2, RoundingMode.HALF_UP);
BigDecimal bd3 = bd1.divide(bd2, mc);
Run Code Online (Sandbox Code Playgroud)
或者:
BigDecimal bd3 = bd1.divide(bd2, RoundingMode.HALF_UP);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50391 次 |
| 最近记录: |