将具有负比例的 BigDecimal 转换为正比例

Transform a BigDecimal with a negative scale to a positive scale

我得到了 BigDecimal 个科学记数法的值,即 1E+3 并且具有 -3 的比例。我如何将其转换为 1000 比例为 0?我看到你可以使用 toPlainString() 那么有没有直接的方法来实现这个?

如果我没理解错的话,d = d.setScale(0) 会起作用:

BigDecimal d = BigDecimal.valueOf(1e3).setScale(-3);
System.out.println(d.unscaledValue());
d = d.setScale(0);
System.out.println(d.unscaledValue());

输出为:

1
1000

请注意 BigDecimal 是不可变的,因此您必须重新分配它。