澄清BigDecimal.stripTrailingZeroes()的行为

Leo*_*nid 6 java bigdecimal

为什么以下代码打印0.00而不是0

BigDecimal big = new BigDecimal("0.00");
big = big.stripTrailingZeros();
System.out.println(big.toPlainString());
Run Code Online (Sandbox Code Playgroud)

以下是stripTrailingZeroes的文档:

返回BigDecimal,它在数值上等于此值,但从表示中删除了任何尾随零.例如,从BigDecimal值600.0剥离尾随零,其中[BigInteger,scale]组件等于[6000,1],产生6E2,[BigInteger,scale]组件等于[6,-2]

返回:
数字等于BigDecimal,删除任何尾随零.

Ber*_*ann 0

它去除内部表示的尾随零[6000,1]并相应地调整比例1 -> -2。内部表示在某种程度上也独立于最终打印输出,最终打印输出也受到格式、舍入和区域设置的影响。