首页
学习
活动
专区
圈层
工具
发布

计算APR
EN

Stack Overflow用户
提问于 2014-04-25 23:33:56
回答 2查看 2.7K关注 0票数 3

所以,正如标题所说的,我需要计算贷款的APR。我有以下几点:

代码语言:javascript
复制
apr = (rate * ((Math.Pow((1 + rate), duration))) /
      ((Math.Pow((1 + rate), duration)) - 1)) -
      (installment / (loanamount - extracost));

但它没有返回正确的值。我还尝试了另一个版本的公式,结果更糟糕:

代码语言:javascript
复制
apr = ((loanamount + extracost) * rate * Math.Pow((1 + rate), duration)) / (Math.Pow((1 + rate),duration) - 1);

这些计算都是错误的。我试着调整一些括号,检查操作顺序。任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-02 19:10:37

也许这听起来像是作弊,但我只是使用了现有的VB金融库.NET。这是年金,所以你必须使支付为负数。

期限是全额付款(即15年期抵押贷款有180次付款,所以180次付款)付款是每一次付款(所以每月支付amt)。(x -1)起始金额=不收费的原始贷款额

代码语言:javascript
复制
  double apr = Microsoft.VisualBasic.Financial.Rate(term,-payment,originalLoanAmt)

然后,把答案乘以年度付款#(如果每月支付12次),或者如果你想用3.25%这样的数字表示%,那么也要乘以100。

**注意,您必须添加对Microsoft.VisualBasic程序集的引用。

票数 3
EN

Stack Overflow用户

发布于 2014-04-26 00:36:24

您正在计算给定持续时间的付款金额,作为付款的数量。那不是APR。我看到的是:

代码语言:javascript
复制
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);

输出的位置

代码语言:javascript
复制
10500
5378.0487804878
3672.08564631245

只有第一个答案与您可能期望从A=Pe^(rt)或从本金的金额类似的计算相同。

你需要的实际计算取决于法律管辖权和信贷/贷款类型。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23304737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档