浮点数最多2位小数java

wvp*_*wvp 10 java floating-point decimal rounding bigdecimal

我试图将浮点数舍入到2位小数.

我有2个浮动值:

1.985
29.294998
Run Code Online (Sandbox Code Playgroud)

它们都需要四舍五入,所以我最终得到以下内容:

1.99
29.30
Run Code Online (Sandbox Code Playgroud)

当我使用以下方法时:

public static Float precision(int decimalPlace, Float d) {

    BigDecimal bd = new BigDecimal(Float.toString(d));
    bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
    return bd.floatValue();
  }
Run Code Online (Sandbox Code Playgroud)

结果是:

1.99
29.29
Run Code Online (Sandbox Code Playgroud)

Jon*_*eau 11

因为你正在使用BigDecimal.ROUND_HALF_UP,29.294998所以四舍五入29.29.您可能想要使用BigDecimal.ROUND_UP.

检查BigDecimal doc以获取有关每个舍入的更多信息.