【发布时间】:2018-03-30 21:58:52
【问题描述】:
如何根据十进制圆度设置通用缩放作为数字
BigDecimal num = new BigDecimal(25)
BigDecimal result = num.divide(new BigDecimal(13), 7, RoundingMode.HALF_EVEN)
// 1.9230769
但是
BigDecimal result = num.divide(new BigDecimal(10), 7, RoundingMode.HALF_EVEN)
// 2.5000000 that should be 2.5
大概分析余数?
这种情况的 API 中有什么东西吗?
【问题讨论】:
-
BigDecimal.stripTrailingZeros()也许?例如BigDecimal result = num.divide(new BigDecimal(13), 7, RoundingMode.HALF_EVEN).stripTrailingZeros();见:BigDecimal.stripTrailingZeros() 和 Removing trailing zeros from BigDecimal in Java -
@d.j.brown 它工作 10 倍你可能会回答我会接受你的回答的问题
-
谢谢,但是我发现的另一个问题已经回答了这个问题,因此重新回答没有价值,请参阅上面的链接。这应该作为重复或删除关闭。
-
@d.j.brown 我明白了
-
一个合适的答案是使用 MathContext 并设置精度,因为 op 专门使用除法。链接的问题是关于删除零的具体问题。
标签: java rounding scaling bigdecimal autoscaling