将具有负比例的 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:将所有游戏对象转换为相同大小,而不管其比例如何