gpt4 book ai didi

java - 如何使用BigDecimal增加分期利息?

转载 作者:行者123 更新时间:2023-12-01 09:32:17 27 4
gpt4 key购买 nike

我正在创建一个销售汽车的应用程序,该应用程序可以选择按月分期付款购买汽车。现在,我想增加分期付款的利息。我正在使用 BigDecimal 来执行此操作并解决舍入值的问题,但问题是我无法使用 BigDecimal 来执行此操作。我如何使用 BigDecimal 来做到这一点?

在寻找如何做到这一点时,我找到了一个计算方法,该方法是:PMV = PV * i/1 - (1 + i)^-n;。但我无法使用 BigDecimal 来做到这一点。

PMV = installment, PV = value of car, i = interest, n = number of installments

我正在努力。

private void calculate(){
/**
* recipe
* PMT = PV * i / 1 - (1 + i)^-n
*/
BigDecimal total = new BigDecimal(0);
BigDecimal pmt = new BigDecimal(0);
BigDecimal finalValue = new BigDecimal(0);

BigDecimal pv = ValorBigDecimal.getValor(txtParcela.getText());
Integer installments = Integer.parseInt(txtParcela.getText());
BigDecimal inputValue = valorEntrada();
BigDecimal interest = ValorBigDecimal.getValor(txtJuros.getText()).divide(new BigDecimal(100));
BigDecimal rate = interest;

//carValue - inputValue, check if financing has input value to subtract of car value
total = total.add(pv).subtract(inputValue);

//calculate
finalValue = finalValue.add(total);
rate = rate.divide(new BigDecimal(1).subtract(new BigDecimal(1).add(interest)).pow(installments));
finalValue = finalValue.multiply(rate);

System.out.println(finalValue);

}

最佳答案

问题出在费率计算上。您将 pow() 应用于 1-(1+i),而不是 (1+i)。您还需要取消分期付款。所以,必然有:

rate = rate.divide(BigDecimal.ONE.subtract(
BigDecimal.ONE.add(interest).pow(installments.negate())
));

关于java - 如何使用BigDecimal增加分期利息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39311269/

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