我正在努力弄清楚被输入的价值观。
我要求原则率,百分率和年数。
我想找出他们的simpleInterest和compundInterest。
我希望它在表格中显示每年的结果值。
我有一张桌子,当我输入数量时会得到多少年,例如15.当我输入15时,它会显示15行,但它们都是相同的。
我需要它来计算每一行每年的价值。
我目前的代码只显示了15年的相同结果。
我的代码:
<div class="container">
<div id="content">
<h2 class="interestOutput">Table for $<span id="interestPrinciple">Loading...</span> at <span id="interestRate">Loading...</span>%
</h2>
<table>
<tr>
<th>Year</th>
<th>SimpleInterest</th>
<th>CompoundInterest</th>
</tr>
<div id="tableResult">
</div>
</table>
</div>
<script type="text/javascript">
if (document.readyState = "complete") {
var principle = localStorage.getItem("principle");
var rate = localStorage.getItem("rate");
var years = localStorage.getItem("years");
var simple_interest = principle * (rate / 100) * years;
var compound_interest = principle * (1 + rate/100);
/*
var list = computeSchedule(p, rate, 12, y, monthlyPayment);
var tables = "";
for (var i = 0; i < list.length; i++) {
tables += "<tr>" +
"<td>" + list[i][0] + "</td>" +
"<td>" + list[i][1] + "</td>" +
"<td>" + list[i][2] + "</td>" +
"<td>" + list[i][3] + "</td>" +
"<td>" + list[i][4] + "</td>" +
"</tr>";
}
document.getElementById("demo").innerHTML = '<table>' + tables + '</table>';
*/
var tables = "";
for (var i = 0; i < years; i++) {
tables +=
"<tr>" +
"<td>" + years + "</td>" +
"<td>" + simple_interest + "</td>" +
"<td>" + compound_interest + "</td>"+
"</tr>";
}
document.getElementById("tableResult").innerHTML = '<table>' + tables + '</table>';
document.getElementById("interestPrinciple").innerHTML = principle;
document.getElementById("interestRate").innerHTML = rate;
//document.getElementById("gradeOutput").innerHTML = years;
}
</script>
I have now sorted the simple interest column but the compound column is not correct.
我收到了这些信息:The formula to compute simple interest is interest = principal * (rate/100) * years. Just add the principal to the interest to generate the amount to display. The formula to compute compound interest is FinalAmount = principal * (1 + rate/100)Years. Notice that you do not need to add the principal in this case. Your program must read the principal amount, rate (%), and the maximum number of years (see Web Site Snapshots/Video below). Use the following messages to read the appropriate values:
我的更新代码是:
<div class="container">
<div id="content">
<h2 class="interestOutput">Table for $<span id="interestPrinciple">Loading...</span> at <span id="interestRate">Loading...</span>%
</h2>
<div id="tableResult"></div>
</div>
</div>
<script type="text/javascript">
if (document.readyState = "complete") {
var principle = localStorage.getItem("principle");
var rate = localStorage.getItem("rate");
var years = localStorage.getItem("years");
var tables = "";
for (var i = 0; i < years; i++) {
var simple_interest = principle * (rate / 100) * i;
var compound_interest = principle * (1 + (rate/100));
var final_simple = compound_interest + simple_interest;
var add_extra = 1 + (rate/100);
var final_compound = final_simple + add_extra;
tables +=
"<tr>" +
"<td>" + (i + 1) + "</td>" +
"<td>$" + final_simple + "</td>" +
"<td>$" + final_compound + "</td>"+
"</tr>";
}
document.getElementById("tableResult").innerHTML = '<table><tr><th>Year</th><th>SimpleInterest</th><th>CompoundInterest</th></tr>' + tables + '</table>';
document.getElementById("interestPrinciple").innerHTML = principle;
document.getElementById("interestRate").innerHTML = rate;
}
</script>
答案 0 :(得分:1)
从我所看到的,多年来你的迭代没有任何关于调用解决问题的功能。您的变量会按原样声明一次,并且您可以在相同的数据年度内循环。
尝试这样的事情。
var tables, principle, years, rate, add_extra, times_compunded_per_tear, compound_rate, i;
principle = 10000;
years = 6;
rate = 5.6;
tables = '';
times_compounded_per_year = 12
compound_rate = 1 / times_compounded_per_year;
function simple_interest(currentYear) {
return principle * (rate / 100) * currentYear + principle;
}
function compound_interest(currentYear) {
return principle * (Math.pow(((1 + rate/100) / compound_rate), (compound_rate * currentYear)));
}
for (i = 0; i < years + 1; i++) {
tables +=
"<tr>" +
"<td>Year: "+ i +"</td>" +
"<td>Simple Interest "+ simple_interest(i).toFixed(2) + "</td>" +
"<td>Compound Interest "+ compound_interest(i).toFixed(2) + "</td>" +
"</tr>";
}
document.getElementById("tableResult").innerHTML = '<table>' + tables + '</table>';
document.getElementById("interestPrinciple").innerHTML = "Principle: "+principle;
document.getElementById("interestRate").innerHTML = "Interest Rate: "+rate;
//document.getElementById("gradeOutput").innerHTML = years;
&#13;
<ul>
<li id="interestPrinciple"></li>
<li id="interestRate"></li>
</ul>
<div id="tableResult"></div>
&#13;
答案 1 :(得分:0)
一次又一次地做同样的事情总会给你相同的结果。为了更改结果,您需要在代码中的某处使用索引。
为什么所有的评论,清理你的代码,提出一个精确的问题,你会得到一个精确的答案。
答案 2 :(得分:0)
您需要计算for循环内部的兴趣,否则您每次都只是回收相同的变量而从不更新它。
for (var i = 0; i < years; i++) {
var simple_interest = principle * (rate / 100) * i;
var compound_interest = principle * (1 + rate/100);
tables +=
"<tr>" +
"<td>" + (i + 1) + "</td>" +
"<td>" + simple_interest + "</td>" +
"<td>" + compound_interest + "</td>"+
"</tr>";
}
此外,compound_interest也需要使用索引。