gpt4 book ai didi

java - 一个数乘以一个分数

转载 作者:行者123 更新时间:2023-11-30 06:41:31 25 4
gpt4 key购买 nike

我正在使用 BigDecimals 编写一些单位转换器,我遇到了一个情况,我必须将一个数字乘以一个分数 - 周期数。

在大多数情况下,精度已经足够了,但假设我们有一个等式:

BigDecimal.valueOf(90)
.multiply(BigDecimal.valueOf(10)
.divide(BigDecimal.valueOf(90), 6, RoundingMode.HALF_UP))

通常这会等于 10,但是由于四舍五入,我们将得到 9.999999...

有没有一种优雅的方式来实现这个而无需 if 条件检测何时可以削减分数?

最佳答案

以下将起作用:

BigDecimal.valueOf(90)
.multiply(BigDecimal.valueOf(10))
.divide(BigDecimal.valueOf(90), 6, RoundingMode.HALF_UP)

不同之处在于这里的操作是链式的,这样可以解决此类情况。在您的解决方案中,需要计算除法(发生错误的地方)然后乘法,因为它作为参数传递。

关于java - 一个数乘以一个分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55328244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com