在返回最终结果之前,我使用 BigDecimal
进行了几次计算。我的计算包含两个部分。我知道我应该在调用 divide()
时定义缩放和舍入模式。但是,由于我使用的是货币,所以我想尽可能长时间地保持最大精度,并且只将我的最终结果四舍五入到小数点后两位。
我应该对中间结果应用什么缩放和舍入模式以获得最大精度?
最佳答案
假设,您执行类似 (a/b)/c 的操作。
我不会先计算(a/b)。我宁愿将其重组为
一个/(b * c)
它不仅不需要中间舍入,而且会更加优化。
(a/b)/c = a/(b * c)
证明:
(a/b)/c = (a * b^-1) * c^-1 = a * (b^-1 * c^-1) = a * 1/(b * c) = a/(b * c)
关于java - 划分 BigDecimals 时保留中间结果的最大精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31724405/