首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同结果的摊销进度计算

不同结果的摊销进度计算
EN

Stack Overflow用户
提问于 2017-09-29 17:58:46
回答 2查看 1.6K关注 0票数 1

我试图构建一个小程序来生成一个字符串输出,它将告诉我贷款的总可偿还金额(每月复合利息)。我使用两个在线计算器来验证我的工作,但是两者都不同。

  • 贷款额: 1000
  • 比率: 7%
  • 期限:36个月
  • 每月应偿还款项: 30.78
  • 偿还总额:‘m 1108.04(这与我预期的结果很接近)

上面的内容通过以下在线计算器进行验证:https://www.moneysupermarket.com/loans/calculator/

然而,在我得到的几乎所有其他在线计算器上:

  • 每月应偿还款项: 30.88
  • 应偿还款项总额:1,111.53英镑

示例:

https://en-gb.calculatestuff.com/financial/loan-amortization-calculator

http://www.calculator.net/amortization-calculator.html?cloanamount=1000&cloanterm=3&cinterestrate=7&printit=0&x=69&y=15

此外,在我自己的代码中,我得到了1,111.53。所以我有点搞不懂到底哪一个值是正确的。我想接近第一个金额1,108.04,因为这是我被要求找到的值,但不确定我在这里遗漏了什么。

代码语言:javascript
运行
复制
 public void CompoundCalculator(double lenderRate, double loanPeriodInMonths, double desiredLoanAmount){
        var repaymentAmount = PMT(7, 36, 1000);
        var balance = desiredLoanAmount;
        var totalInterest = 0.00;

        for (var i = 0; i < loanPeriodInMonths;i++)

        {
            var monthlyInterest = Math.Round(balance * ( (lenderRate / 1200) ),2);


            balance -= Math.Round(repaymentAmount - monthlyInterest,2) ;
                totalInterest += monthlyInterest;


        }
       //do something here later with totalInterest variable 

    }

public static double PMT(double yearlyInterestRate, int totalNumberOfMonths, double loanAmount)
    {
        var rate = (double)yearlyInterestRate / 100 / 12;
        var denominator = Math.Pow((1 + rate), totalNumberOfMonths) - 1;
        return (rate + (rate / denominator)) * loanAmount;
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-29 19:40:59

你的问题是你使用了错误的比率:你把月利率变成年率/ 12,而它实际上是(1+yearlyrate)^(1/12)-1 (这是当你把年率合成12次时给出年率的比率。

例如,对于7%的比率,每月的比率是0.5654%,而不是你的计算所发现的0.5833%。

将公式从(双)yearlyInterestRate/ 100 / 12改为

代码语言:javascript
运行
复制
Math.Pow(1+(yearlyInterestRate / 100),1.0/12)-1

应该给你正确的结果(每月~30.7789美元)

票数 2
EN

Stack Overflow用户

发布于 2017-09-29 20:12:36

根据我的借款经验(仅在美国),贷款方收取的费用更多。他们计算出一个“定期利率”,它可以是一个固定的月利率,也可以是根据贷款期间的天数计算的。然后在期末计算未偿本金的利息。

如果你使用贷款机构的在线计算器,他们给你的价值将是他们向你收取的贷款费用。您可能需要调整您的代码以获得预期的结果,但如果您从贷款机构借款,您可能会得到更高的付款。

我的一个抵押贷款贷款人使用了一个月/日混合利率。当我支付标准付款时,无论何时付款,都会收取整整一个月的利息。如果我多付了钱,本金马上就会减少,所以我下个月的利息可能或多或少取决于我付款的哪一天。很难和他们的相配。我的所有其他贷款人都使用了利率/12,并通过降低下个月的本金来支付额外的款项。

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

https://stackoverflow.com/questions/46494528

复制
相关文章

相似问题

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