2011-10-26 54 views
1

我寫了一個小型jQuery興趣卡爾魯克。jQuery興趣計算器 - 計算月度支付的信用金額

  • 它是從每月再付款計算信用的量

LIVE DEMO HERE

的問題是,我的利息計算邏輯僅僅是純粹的錯誤。

看一看:

//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

正如你所看到的,這個循環已經存在幾個月/存款/利息。只需要一些在循環中計算興趣的登錄幫助。

+2

我不確定你的問題是否與編程有關。你正在尋找一個函數來計算基於某些變量的興趣,對吧? - 會幫助你嗎? http://math.about.com/od/businessmath/ss/Interest.htm – polarblau

+0

@polarblau - 以及如何使用JavaScript做到這一點? – Iladarsda

+3

瞭解如何在沒有Javascript的情況下做到這一點。鏈接(以及許多其他在線資源)將幫助您。然後將該函數翻譯成Javascript。 – polarblau

回答

2

你的措辭有點混亂。但我的理解是,你想知道有多少人可以根據每月付款和一些利率承擔的功勞。正如其他人所指出的那樣,您首先需要在紙上這樣做,以確保您對興趣類型和複合期有正確的公式。但這不是StackOverflow的意義,我們在這裏專注於編程!因此,讓我們假設信用卡樣式的複利和每月支付(您可以根據需要重寫任何其他公式)。

我可以在這裏找到這些公式的最佳資源是:Loan or Investment Formulas。此頁面預先解決了幾乎所有變量的複合公式!所以你不需要記住大學的商業數學課的介紹。尼斯。

所以現在我們只需要將正確的公式轉換成JavaScript。這就是我們的StackOverflow觀衆希望看到的!在我們的例子,其中:

  • A =貸款總額
  • P =每月還款金額
  • N =的月數
  • 我=年利率利率/ 12

一=(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認爲插入符號是一個按位XOR運算符,因此爲了讓冪使用 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); 
    } 
    

你去那裏!那將計算基於一些按月支付的,給定的APR利率和12總的可用信貸,24 &36個月條款。如果這是不完全的目標你一定要記住,閱讀數學教程,並選擇另一個公式轉換爲JavaScript!

2

試試下面的這個頁面,它也包含Excel電子表格,它有很大的幫助。

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

如果你可以按照你的頭了Excel的計算,你可以輕鬆地拍出來的代碼。

「我花了4年,一個數學學位畢業,才讓我的教授告訴我,我學到了什麼是絕對真實的,但完全沒用」

3

的主要問題是,你正試圖通過使用非微積分方法來解決微積分問題。微積分,如果你不知道,是從根本上解決X/0問題的數學分支。在複利的情況下,貪婪的銀行試圖儘可能地從利息中榨取儘可能多的錢。

這開始作爲每月利息,但他們意識到,如果他們每天收費,他們可以得到更多。也就是說,每月10%,每天按1/3%分成幾天。這是因爲前一天的利息是下一個利息週期計算(或複合)的一部分。如果他們每小時,每分鐘,每秒進行分配,他們可以獲得更多,直到它變成基本「即時利益」。因此,複合興趣誕生了。(由於受歡迎程度和混亂,政府強制要求使用APR術語將複利比例轉化爲我們正常人可以涉及的「年度百分比率」。因此,如果它表示APR,並且大多數情況下,這是複利。)

複利是一個X/0問題,因爲你試圖獲得即時利息。 Wikipedia's article on compound interest應提供一些有用的計算複合利息的公式。然而,使用這樣的公式時需要記住的一件重要事情是,您不能只採用APR之類的東西,並用12除以得到MPR數字。否則,這將不是複利,並不是那麼簡單。

0

使用式

A = P(1 + R/N)^ NT

其中, 答:原則量 R::感興趣 P未來值年利息(十進制) n:沒有。時間利息每年複利 t:沒有。投資金額的年數

將'r'的值轉換爲浮動值,在接受用戶的int值後除以100。提供單選按鈕選擇季度,月度,年度等投資類型,因此您可以通過使用條件來設置'n'的值。

所以你可以使用單個函數計算任何類型的興趣。