2014-10-30 82 views
-1

我使用Javascript計算了一個計算器,計算出需要多長時間才能成爲百萬富翁,計算以下因素:每月存款和投資回報。爲了解決這個問題,我需要一個攤銷時間表,以便將利息加入到每個月的儲蓄中。 見代碼:Javascript百萬富翁計算器循環

<!doctype html> 
<html> 
<head> 
<script> 
function computeMillion(){ 
    var deposit = document.getElementById('deposit').value; 
    var interest = document.getElementById('return').value; 
    var amount = document.getElementById('amount').value; 

    for(var i = 0; i < 5; i++) 
     { 
      interestPayment = deposit * interest; 
      principalPayment = deposit - interestPayment; 
      principal -= principalPayment; 
     } 
    var months = amount/principal; 
    document.getElementById('months').innerHTML = "Months to Millionaire ="+months;  

} 
</script> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
</head> 

<body> 
<p>Amount Desired: £<input id="amount" type="number" value="1000000" onChange="computeMillion()"></p> 
<p>Monthly Deposit: £<input id="deposit" type="number" onChange="computeMillion()"></p> 
<p>Return on Investment: <input id="interest" type="number" onChange="computeMillion()">%</p> 

<h2 id="months"></h2> 

</body> 
</html> 

所以,如果£50的押金最初提出,第一個月後節省的費用應該是52.50£因爲5%的利息,用戶會輸入,隨後的一個月另一£ 50將被保存,這意味着在賬戶中有102.50英鎊,然後將利息加到那個等於107.62英鎊等等。

任何人都可以看到不工作的代碼?我可以輸入所需的金額,但根本沒有結果顯示。

任何人都可以幫忙嗎?

由於

+3

'for(i = 0; i <5; bank ++)'???爲什麼'銀行++'?不是'我++'? – l2aelba 2014-10-30 12:15:25

回答

2

正如我發現...

爲什麼bank++當您使用i

for(i = 0; i < 5; bank++) 

嘗試:

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

或類似的東西..

HTML:

<p>Amount Desired: £<input id="amount" type="number" value="1000000" onkeyup="computeMillion()"></p> 
<p>Monthly Deposit: £<input id="deposit" type="number" onkeyup="computeMillion()"></p> 
<p>Return on Investment:<input id="interest" type="number" onkeyup="computeMillion()">%</p> 
<h2 id="months"></h2> 

JS:

function computeMillion() { 
    var deposit = document.getElementById('deposit').value || 0; 
    var interest = document.getElementById('interest').value || 0; 
    var amount = document.getElementById('amount').value || 0; 
    var principal; 
    // var principal = 0; 
    for (var i = 0; i < 5; i++) { 
     interestPayment = deposit * interest; 
     principalPayment = deposit - interestPayment; 
     principal = principalPayment; 
     // principal -= principalPayment; 
    } 
    var months = amount/principal; 
    document.getElementById('months').innerHTML = "Months to Millionaire =" + months; 
} 

演示:http://jsfiddle.net/xkr5cky4/

+0

感謝您的評論,我已經修改了代碼,但沒有任何效果。 – user3768948 2014-10-30 12:33:43

+0

哇!謝謝!至少它現在顯示結果..我想我可能有我的數學計算錯誤。這就是我想要它工作,忘記造型http://www.thisismoney.co.uk/money/saving/article-1633423/Millionaire-calculator-How-long-make-1m-How-regular- savings-make-rich.html – user3768948 2014-10-30 12:47:51

1

爲(I = 0;我< 5;銀行++)

變化到

爲(I = 0;我< 5; i ++在)

0

我相信變量原則需要外部for語句來定義結果中顯示。

另外,我會推薦一個循環,而不是一個等待,直到您的值等於或大於1毫米,然後顯示月份的條件。

+0

你能否詳細說明一下? – user3768948 2014-10-30 13:43:44