在BigDecimal中的setscal

Meh*_*hdi 0 java bigdecimal

我有这个程序:

BigDecimal a = new BigDecimal("0.21556788990002");
        System.out.println(a.setScale(2));
Run Code Online (Sandbox Code Playgroud)

我有结果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提取我能做什么?

小智 6

您需要使用舍入模式进行缩放,对于您的情况,它将使用以下内容:

System.out.println(a.setScale(1, RoundingMode.FLOOR));
Run Code Online (Sandbox Code Playgroud)