我目前正在学习javascript。我已经创建了一个计算器来查找投资未来价值。它显示future value
时给出的值不正确。我已经多次检查过这个公式,但它仍然给我一个错误。此外,如果兴趣小于0
或大于20
但未显示任何内容,我已设置警报。如何在必要时正确显示正确的未来值和警报? Example
的Javascript
var $ = function (id) {
return document.getElementById(id);
}
var calculate_click = function () {
var investment = parseFloat( $("investment").value );
var annualRate = parseFloat( $("rate").value ) /100;
var years = parseInt( $("years").value );
$("futureValue").value = "";
if (isNaN(investment) || investment <= 0) {
alert("Investment must be a valid number\nand greater than zero.");
} else if(isNaN(annualRate) || annualRate <= 0 || annualRate > 20) {
alert("Annual rate must be a valid number\nand less than or equal to 20.");
} else if(isNaN(years) || years <= 0 || years > 50) {
alert("Years must be a valid number\nand less than or equal to 50.");
} else {
//var monthlyRate = annualRate / 12;
//var months = years * 12;
var futureValue = 0;
for ( i = 1; i <= years; i++ ) {
futureValue = ( futureValue + investment ) *
( 1 + annualRate );
}
$("futureValue").value = futureValue.toFixed(2);
}
}
var clear_click = function () {
$("investment").value = "";
$("rate").value = "";
$("years").value = "";
$("futureValue").value = "";
}
window.onload = function () {
$("calculate").onclick = calculate_click;
$("investment").focus();
$("clear").onclick = clear_click;
}
答案 0 :(得分:1)
使用.value
不正确,其javascript,虽然这是jquery,但请尝试在前面添加#
并使用.val()
代替。
它与此类似:
jquery function val() is not equivalent to "$(this).value="?
修改
他没有使用jquery,忽略了这一点。
答案 1 :(得分:1)
如果我正确地记住了未来的价值,你就搞乱了这个公式,这就是为什么你没有得到预期值。
变化:
for ( i = 1; i <= years; i++ ) {
futureValue = ( futureValue + investment ) *
( 1 + annualRate );
}
要:
futureValue = investment*Math.pow((1+annualRate), years);
不太确定你为什么每年都会循环,但它应该基于年数的权力(再次,如果我没记错的话)