gpt4 book ai didi

java - 在代码中编写此公式是否有更清晰/更简单的方法?

转载 作者:行者123 更新时间:2023-11-29 08:23:17 24 4
gpt4 key购买 nike

我需要返回一个 double 值。此值源自此公式。

月息=余额*利率/100.00/12.0

由于一些精度问题,我将在计算期间使用 BigDecimal 并返回 double 值(因为这是表示货币的方式)。

我试过下面的代码,它工作得很好,但如果你问我的话,它看起来很长而且有点不可读。

double bal = 10, rate=2, hundred = 100.00, month = 12.0;

double monthInt= (BigDecimal.valueOf(bal).multiply(BigDecimal.valueOf(rate)).divide(BigDecimal.valueOf(hundred)).divide(BigDecimal.valueOf(month))).doubleValue();

return monthInt;

最佳答案

您知道 balance * interest rate 的结果将始终除以 10012 .因此,您可以将公式的这些静态部分保存在 static 中。多变的。

private static final BigDecimal MONTH_IN_PERCENT = BigDecimal.valueOf(100 * 12);

然后在你的计算中使用它:

return BigDecimal.valueOf(bal).multiply(BigDecimal.valueOf(rate).divide(MONTH_IN_PERCENT).doubleValue();

如果你能保证 bal * rate <= Long.MAX_VALUE ,你可以使用这个版本:

return BigDecimal.valueOf((long) bal * rate).divide(MONTH_IN_PERCENT).doubleValue();

关于java - 在代码中编写此公式是否有更清晰/更简单的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55571301/

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