我在代码中遇到了一个奇怪的错误。

它与

new BigDecimal("1.2300").stripTrailingZeros()

返回1.23(正确)


new BigDecimal("0.0000").stripTrailingZeros()

返回0.0000(奇怪),因此什么也没有发生

为什么?

如何解决?

最佳答案

似乎是错误。但是它已在 Java 8 中修复。 fix的直接URL。

有解决方法:

BigDecimal zero = BigDecimal.ZERO;
if (someBigDecimal.compareTo(zero) == 0) {
    someBigDecimal = zero;
} else {
    someBigDecimal = someBigDecimal.stripTrailingZeros();
}

请引用此link

来自Holger的评论也很不错

关于java - BigDecimal stripTrailingZeros无效为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34414785/

10-10 13:14