2015-11-26 60 views
0

我需要幫助轉換貸款餘額公式爲JavaScript我加入的轉換數學公式的JavaScript

enter image description here

這是我現在有它的公式圖像,但我一直得到錯誤的答案。

var loanBalance = a * Math.pow((1 + r), n) - p * ((Math.pow((1 + r), n) - 1)/r); 

我的計算器有四個功能,但只有這一個是giging我回答錯了,因爲你可以看到我是新來的這一切,在此先感謝。

這是我遇到的麻煩的功能:

 function doBalance() { 
     var principal = parseFloat(document.getElementById("borrowedBox").value); 
     var annualRate = parseFloat(document.getElementById("rateBox").value); 
     var years = parseFloat(document.getElementById("yearsBox").value); 
     var periodsPerYear = parseFloat(document.getElementById("paymentBox").value); 
     var numberOfPaymentsPaidToDate = parseFloat(document.getElementById("toDatePymtsBox").value); 
     var result = 0; 
     result = computeBalance(principal, annualRate, years, periodsPerYear, numberOfPaymentsPaidToDate); 
     document.getElementById("outputDiv2").innerHTML = "$" + result; 
    } 

    function computeBalance(principal, annualRate, years, periodsPerYear, numberOfPaymentsPaidToDate) { 
     var a = principal; 
     var r = annualRate/periodsPerYear; 
     var p = periodsPerYear*years; 
     var n = numberOfPaymentsPaidToDate; 
     var loanBalance = (a * (Math.pow((1 + r), n))) -((p * (Math.pow((1 + r), n) - 1))/r); 
     return loanBalance.toFixed(2); 
    } 

答案應該是54306.40 我使用這些值: Loan Calculator

+0

它看起來一目瞭然你已經正確地創建了這個功能......它有很多嗎? –

+2

你能提供一些樣本輸入輸出嗎?像什麼是提供和什麼是期待的答案 –

+0

你從哪裏得到該公式?也許這是錯誤的,或者你給錯誤的輸入 –

回答

1

我覺得你的括號只是稍微偏離:

var loanBalance = a * Math.pow((1 + r), n) - (p * ((Math.pow((1 + r), n) - 1))/r); 
+0

這給出了與原始問題相同的答案。你認爲它有什麼幫助? –

+0

您添加的括號完全沒有區別。乘法和除法相對於加法和減法具有優先權,因此即使方括號不存在,也會在減去括號之前評估包含在括號中的部分。 – RobG

3

拆分公式,

function loanBalancer(r,n,p,a){ 
    var powerfn = Math.pow((1+r), n); 
    var firstprt = a * powerfn; 
    var num = p(powerfn - 1); 
    var den = r; 
    return firstprt - (num/den) 
} 
+0

這給出了與原始問題相同的答案。你認爲它有什麼幫助? –

-2

首先支架的需要適當

var loanBalance = (a * (Math.pow((1 + r), n))) -((p * (Math.pow((1 + r), n) - 1))/r); 
+0

這給出了與原始問題相同的答案。你認爲它有什麼幫助? –

+0

額外括號對值的評估順序沒有影響。即使是OP也有更多的支架。 – RobG

+0

好的,如果你認爲它不能正常工作,可以給我提供一些輸入變量的正確輸出。 –

0

放置既然我們已經解決了這個事實,你已經寫正確行爲,併產生正確的結果的代碼,我想給一個小建議。塗一些代數減少表達式得到:

b = (((1+r)^n)(ra-p) + p)/r 

在代碼...

b = (Math.pow(1+r, n)(r*a - p) + p)/r; 

這將減少計算量爲您計算:)