为什么以下代码会打印0.00
而不是0
?
BigDecimal big = new BigDecimal("0.00");
big = big.stripTrailingZeros();
System.out.println(big.toPlainString());
以下是stripTrailingZeroes的文档:
返回BigDecimal,它在数值上等于此值,但从表示中删除了任何尾随零。例如,从BigDecimal值600.0剥离尾随零,其中[BigInteger,scale]组件等于[6000,1],产生6E2,[BigInteger,scale]组件等于[6,-2]
返回:
数字上相等的BigDecimal,删除了任何尾随零。
答案 0 :(得分:5)
答案 1 :(得分:0)
它会删除内部表示[6000,1]
的尾随零,并相应地调整比例1 -> -2
。内部表示也有点独立于最终打印输出,这也受格式,舍入和区域设置的影响。