所以,正如标题所说的,我需要计算贷款的APR。我有以下几点:
apr = (rate * ((Math.Pow((1 + rate), duration))) /
((Math.Pow((1 + rate), duration)) - 1)) -
(installment / (loanamount - extracost));但它没有返回正确的值。我还尝试了另一个版本的公式,结果更糟糕:
apr = ((loanamount + extracost) * rate * Math.Pow((1 + rate), duration)) / (Math.Pow((1 + rate),duration) - 1);这些计算都是错误的。我试着调整一些括号,检查操作顺序。任何帮助都将不胜感激!
发布于 2015-03-02 19:10:37
也许这听起来像是作弊,但我只是使用了现有的VB金融库.NET。这是年金,所以你必须使支付为负数。
期限是全额付款(即15年期抵押贷款有180次付款,所以180次付款)付款是每一次付款(所以每月支付amt)。(x -1)起始金额=不收费的原始贷款额
double apr = Microsoft.VisualBasic.Financial.Rate(term,-payment,originalLoanAmt)然后,把答案乘以年度付款#(如果每月支付12次),或者如果你想用3.25%这样的数字表示%,那么也要乘以100。
**注意,您必须添加对Microsoft.VisualBasic程序集的引用。
发布于 2014-04-26 00:36:24
您正在计算给定持续时间的付款金额,作为付款的数量。那不是APR。我看到的是:
double apr, loanamount = 3000d, extracost = 7000d, rate = 0.05;
int duration = 1;
apr = ((loanamount + extracost) * rate * Math.Pow((1 + rate), duration)) / (Math.Pow((1 + rate),duration) - 1);
Console.WriteLine(apr);
duration = 2;
apr = ((loanamount + extracost) * rate * Math.Pow((1 + rate), duration)) / (Math.Pow((1 + rate),duration) - 1);
Console.WriteLine(apr);
duration = 3;
apr = ((loanamount + extracost) * rate * Math.Pow((1 + rate), duration)) / (Math.Pow((1 + rate),duration) - 1);
Console.WriteLine(apr);输出的位置
10500
5378.0487804878
3672.08564631245只有第一个答案与您可能期望从A=Pe^(rt)或从本金的金额类似的计算相同。
你需要的实际计算取决于法律管辖权和信贷/贷款类型。
https://stackoverflow.com/questions/23304737
复制相似问题