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

Posted

技术标签:

【中文标题】将具有负比例的 BigDecimal 转换为正比例【英文标题】:Transform a BigDecimal with a negative scale to a positive scale 【发布时间】:2015-06-26 10:36:38 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于将具有负比例的 BigDecimal 转换为正比例的主要内容,如果未能解决你的问题,请参考以下文章

如何将地理坐标转换为固定比例的像素?

Unity3D:将所有游戏对象转换为相同大小,而不管其比例如何

特征缩放以相同比例转换列中的不同值

如何从 rgb 地图构建海拔比例?

为啥将 SQL Real 转换为 Numeric 时比例会略有增加?

将堆积条形图转换为 100% 比例堆积条形图