我有这个程序:
BigDecimal a = new BigDecimal("0.21556788990002");
System.out.println(a.setScale(2));
我的结果是0.21
,但是当我只想提取0.2
时,我会尝试
for(int i=1; i<10; i++) System.out.println(a.setScale(i));
当 i= 1 时出现此错误:
at java.math.BigDecimal.divideAndRound(BigDecimal.java:1439) at java.math.BigDecimal.setScale(BigDecimal.java:2390) at java.math.BigDecimal.setScale(BigDecimal.java:2437) at NewClass.main(NewClass.java:30)
我可以用 i = 1 来提取什么?
最佳答案
您需要使用舍入模式进行缩放,对于您的情况,它将如下:
System.out.println(a.setScale(1, RoundingMode.FLOOR));
关于java - BigDecimal 中的 setcal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13072679/