Javascript百万富翁计算器循环

时间:2014-10-30 12:13:26

标签: javascript html loops calculator

我正在使用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英镑的金额上等等。

任何人都可以看到无效的代码吗?我可以输入所需的金额,但我根本没有显示任何结果。

有人可以帮忙吗?

由于

3 个答案:

答案 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;
}

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

答案 1 :(得分:1)

for(i = 0; i&lt; 5; bank ++)

更改为

表示(i = 0; i <5; i ++)

答案 2 :(得分:0)

我认为变量原则需要在for语句之外定义,以显示结果。

此外,我建议使用循环而不是等待条件,直到您的值等于或大于1毫米,然后显示月份。