jQuery利息计算器-计算信贷金额从每月付款



我编写了一个小的jQuery利息计算器。

  • 正在计算每月还款额

现场演示

问题是我的利息计算逻辑纯粹是错误的。

看一看:

//Get the value - monhtly repayment
var InputedValue = $('form input[name="val1"]').val();
// 12 ,18, 24, 30, 36 - NumberOfMonths
for (var i = 12; i <= 36; i += 12) {
    // j = 20 - Deposit in %
    for (var j = 10; j <= 10; j += 10) {
        // g = 20, 30 - InterestPerYear in %
        for (var g = 10; g <= 10; g += 10) {
            var InScaleOfYear = i / 12;
            // Amount of payment excluding deposit
            var AmountOfPayments = (InputedValue * (i - 1)); // rat bedzie o jedna mniej niz ilosc miesiecy, bo wplata poczatkowa
            // Amount of payment including deposit
            var AmountInTotal = (AmountOfPayments * 100) / (100 - j);
            // Deposit 
            var Deposit = AmountInTotal - AmountOfPayments;
            // Amount of payment in one year 
            var AmountOfPaymentInOneYear = (AmountOfPayments / InScaleOfYear);
            var InterestPerYear = ((AmountOfPaymentInOneYear * g) / 100);
            // Interest in total
            var InterestInTotal = InterestPerYear * InScaleOfYear;
            // Amount of credit
            var AmountOfCredit = (AmountOfPayments + Deposit) - InterestInTotal;
            $('table tbody').append('<tr><td>' 
            + i + '</td><td>' 
            + "at " + j + "% = " + Deposit.toFixed(2) + '</td><td>' 
            + "at " + g + "% = " + InterestPerYear.toFixed(2) + '</td><td>' 
            + "at " + g + "% = " + InterestInTotal.toFixed(2) + '</td><td>' 
            + AmountOfPayments.toFixed(2) + '</td><td>' 
            + AmountInTotal.toFixed(2) + '</td><td>' 
            + AmountOfCredit.toFixed(2) + '</td></tr>');
        }
    }
}

你们有人在做类似的事情吗?我怎样计算利息有以下信息:

  • 月/年数(i = months)
  • 月供金额($('form input[name="val1"]').val();)
  • 保证金金额(j = deposit)
  • 利率(g = interest rate)

如您所见,循环已经存在了数月/存款/利息。只是需要一些帮助登录计算利息的循环。

你的措辞有点混乱。但我的理解是,你想要根据月供和一些利率计算出某人能负担多少信贷。正如其他人指出的那样,你首先需要在纸上做这个,以确保你有正确的利息类型和复利周期的公式。但这不是StackOverflow的目的,我们在这里关注的是编程!因此,让我们假设信用卡式的贷款,有复利和每月付款(您可以根据需要重写任何其他公式)。

我能在网上找到这些公式的最佳资源是:贷款或投资公式。这个页面有复合公式预先解决几乎任何变量!所以你不需要记住大学里的商业数学入门课程。好。

所以现在我们只需要把正确的公式翻译成JavaScript。这就是我们的StackOverflow观众想要看到的!在本例中,其中:

  • A =贷款总额
  • P =月供金额
  • N =月数
  • i =年利率/12

A = (p/i)[1-(1+i)^- n]

  1. 好的,让我们把方括号改成普通括号。A = (P/i)(1-(1+i)^- n)
  2. 现在我们不希望JavaScript认为第一项是一个方法,我们想让它们相乘。加个星号。A = (P/i) * (1 - (1+i)^- n)
  3. JavaScript认为插入符号是位异或操作符,所以for power让我们使用Math.pow()。A = (P/i) * (1 - Math.pow((1+i),(- n))
  4. 完成了!这可以在JavaScript中工作。一个具有舒适变量名的人类可读的示例如何?

    var MonthlyPaymentAmount = parseFloat($('#txtMonthlyPayment').val());
    var APR = 16.9 / 100;   //16.9% APR
    var InterestRate = (APR / 12);     //monthly interest
    for (var nMonths = 12; nMonths <= 36; nMonths += 12) {
        var TotalAmountOfPayments = nMonths * MonthlyPaymentAmount;
        var TotalAmountOfCredit = (MonthlyPaymentAmount / InterestRate) * (1 - Math.pow((1 + InterestRate), (-nMonths)));
        var TotalAmountOfInterest = TotalAmountOfPayments - TotalAmountOfCredit;
        alert("Total Loan Amount: $" + TotalAmountOfCredit + "Total Paid:" + TotalAmountOfPayments + ", Interest:" + TotalAmountOfInterest);
    }
    

好了!它将根据每月付款,给定的年利率和12,24 &36个月的期限。如果这不是你想要的目标,那就去阅读数学教程,选择另一个公式转换成JavaScript吧!

主要问题是你试图用非微积分方法来解决微积分问题。如果你不知道,微积分是数学的一个分支本质上是解决X/0问题。在复利的情况下,这是一个贪婪的银行试图从利息中挤出尽可能多的钱的例子。

一开始是按月收取利息,但他们意识到如果按天收费,他们可以得到更多。这是相同的利息,比如说,每月10%,分成天,每天1/3%。这是因为前一天的利息是下一个利息周期计算(或复利计算)的一部分。如果按小时、分、秒来划分,他们可以得到更多,直到基本上变成"即时利息"。于是,复利诞生了。

(由于受欢迎和混乱,政府授权使用APR术语将复利百分比转换为我们普通人可以理解的"年百分比"。所以,如果上面写的是APR(大多数都是),那就是复利。

复利是一个X/0问题,因为你试图获得即时利息。维基百科关于复利的文章应该提供一些计算复利的有用公式。然而,在使用这些公式时要记住的一件重要的事情是,你不能仅仅用APR这样的数字除以12就得到MPR的数字。否则就不是复利了,事情没那么简单。

试试下面这个页面,它还包含excel电子表格,这很有帮助。

http://www.yorku.ca/amarshal/mortgage.htm

如果你能在头脑中遵循excel计算,你可以轻松地写出代码。

"我花了4年时间获得数学学位,结果教授告诉我,我学到的东西绝对正确,但完全没用"

这实际上取决于您正在寻找的兴趣类型(复合/简单/等)。举个例子:http://www.hotscripts.com/search/javascript/interest

使用

= p (1 + r/n) ^ nt

,A:带利息的未来价值P:本金R:年息(十进制)N:没有。乘以利息是每年复利T:没有。投资的年份

将'r' value在接受用户输入的int值后除以100,转换为浮点值。提供单选按钮来选择投资类型,如季度,每月,每年等,您可以通过使用if条件设置'n'值。

所以你可以计算任何类型的利息使用单个函数

最新更新