Java BigDecimal 四舍五入,而数字中有无意义的 0

mmm*_*ool 2 java rounding bigdecimal

问题

我曾经BigDecimal.setScale(7, RoundingMode.HALF_UP)将数字四舍五入到 7 个小数位,但是现在如果我得到一个没有任何小数位的数字或它们小于 7,我会0在数字中得到无用的's,例如在以40这种方式四舍五入之后我会得到40.0000000.

是否可以使用SetScale并同时去除无意义的 0将数字舍入一定数量的小数位?

Dan*_*rfe 5

如果您已经执行了舍入,则可以简单地使用DecimalFormat("0.#").

final double value = 5.1000;
DecimalFormat format = new DecimalFormat("0.#");
System.out.println(format.format(value));
Run Code Online (Sandbox Code Playgroud)

这里的结果将5.1没有尾随零。

  • @mmmetafool​​ 在这种情况下,它们的结果是相同的,这归结为编码偏好。如果您以后决定要更改精度级别/格式样式,`DecimalFormat` 会更强大。您的解决方案使用更少的行。 (2认同)