摊销计划计算结果不同

时间:2017-09-29 17:58:47

标签: c# algorithm math

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

  • 贷款金额:1000
  • 费率:7%
  • 持续时间:36个月
  • 每月还款:30.78
  • 支付的总额:1108.04英镑(这与我的结果很接近 期待)

通过以下在线计算器验证以上内容:https://en-gb.calculatestuff.com/financial/loan-amortization-calculator

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

  • 每月还款:30.88
  • 偿还总额:£1,111.53

示例:

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

Docker-Compose can't connect to Docker Daemon

此外,在我自己的代码中,我得到1,111.53。所以我对哪个结束值是正确的有点困惑。我想接近1,108.04的第一个数量,因为我被要求找到它的价值,但不确定我在这里缺少什么。

 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;
    }

2 个答案:

答案 0 :(得分:1)

你的问题是你使用了错误的费率:你好像每月费率是12/12而实际上是(1 +年)^(1/12)-1(这是给年费的比率)当你复合12次时。

例如,对于7%的费率,月费率为~0.5654%,而非计算结果的0.5833%。

将您的公式从(double)annualInterestRate / 100/12替换为

Math.Pow(1+(yearlyInterestRate / 100),1.0/12)-1

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

答案 1 :(得分:1)

根据我的借贷经验(仅限美国),较大的数字通常由贷方收取。他们计算“定期费率”,可以是每月固定费率,也可以根据贷款期间的天数计算。然后他们在期末计算未偿还本金的利息。

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

我的一个抵押贷款人使用混合月/日费率。当我进行标准付款时,无论何时付款,都会收取全月利息。如果我支付额外费用,本金会立即减少,所以我下个月的利息可能会略微增加或减少,具体取决于我付款的日期。难以匹配他们的计算。我所有的其他贷方都使用了利率/ 12并通过减少下个月的本金来应用额外的付款。