将具有负标度的BigDecimal转换为正标度

时间:2015-06-26 10:36:38

标签: java scale bigdecimal scientific-notation

我在科学记数法中得到BigDecimal个值,即1E+3,其等级为-3。如何将其转换为1000,其比例为0?我看到你可以使用toPlainString()然后有直接的方法来实现这个目标吗?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,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是不可变的,因此您必须重新分配它。