为什么新的 BigDecimal(“0.0”).stripTrailingZeros() 的刻度为 1?
2022-09-02 22:25:16
运行这个简单的程序:
public static void main(final String... args)
{
System.out.println(BigDecimal.ZERO.scale());
System.out.println(new BigDecimal("0").scale());
System.out.println(new BigDecimal("0.0").stripTrailingZeros().scale());
System.out.println(new BigDecimal("1.0").stripTrailingZeros().scale());
}
输出:
0
0
1
0
我的问题很简单:为什么第三个没有输出?这似乎是合乎逻辑的...println
0
编辑:好的,所以,这是一个非常古老的错误:
事实上,它“工作”于任何数量的零:是4!new BigDecimal("0.0000").stripTrailingZeroes().scale()