1

我正在尝试计算贷款的每月还款额,但结果总是错误的。

公式如下,其中 i 感兴趣

((1 + i)^months /
(1 + i)^months - 1)
* principal * i

假设年利率和本金是一个无形的浮点数,你能告诉我我的公式有什么问题吗?

double calculatePaymentAmount(int annualInterestRate, 
     int loanSize,                          
     int numberOfPayments;
{
double monthlyInterest = annualInterestRate / 1200.0;
return 
    (
        pow(1 + monthlyInterest, numberOfPayments) /
        (pow(1 + monthlyInterest, numberOfPayments) - 1)
    )
    * (loanSize / 100)
    * monthlyInterest;
}

例如:1.25 的利率和 250 的 12 个月贷款规模给出 22.27 而不是 20.97。

先感谢您。

编辑 1:将每月利息更改为年利率 / 1200

4

3 回答 3

0

我发现出了什么问题。月利率 = 年利率 / 1200.0 / 100

于 2013-03-04T13:55:27.467 回答
0

转换

double monthlyInterest = (double)annualInterestRate / 
    1200 / 100;

double monthlyInterest = (double)annualInterestRate / 12.0;

会成功的。

您可以从http://en.cppreference.com/w/c/language/operator_precedence阅读更多关于 c 中运算符优先级的信息

于 2013-03-04T13:26:09.840 回答
0

假设annualInterestRate是百分比,那么你应该monthlyInterest这样计算:

double monthlyInterest = pow(1+(double)annualInterestRate / 100, 1/12.0) - 1.0;
于 2013-03-04T13:26:52.930 回答