我正在使用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英镑,那么在第一个月之后,由于用户愿意输入5%的利息,节省的费用应该是52.50英镑,下个月将另外保存50英镑,这意味着存在帐户中的金额为102.50英镑,然后将利息加到相当于107.62英镑的金额上等等。
任何人都可以看到无效的代码吗?我可以输入所需的金额,但我根本没有显示任何结果。
有人可以帮忙吗?
由于
答案 0 :(得分: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;
}
答案 1 :(得分:1)
for(i = 0; i&lt; 5; bank ++)
更改为
表示(i = 0; i <5; i ++)
答案 2 :(得分:0)
我认为变量原则需要在for语句之外定义,以显示结果。
此外,我建议使用循环而不是等待条件,直到您的值等于或大于1毫米,然后显示月份。