0

我目前正在学习javascript。我创建了一个计算器来查找投资未来价值。当它显示时,它给了我一个不正确的值future value。我已经检查了几次公式,但它仍然给我一个错误。此外,如果兴趣小于0或大于20但没有显示任何内容,我已经设置了警报。必要时如何正确显示正确的未来值和警报?例子

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;
}
4

2 回答 2

1

使用.value不正确,它的javascript,虽然这是jquery,但尝试#在前面添加a并.val()改为使用。

它与此类似:

jquery 函数 val() 不等同于 "$(this).value="?

编辑

他没有使用jquery,忽略这个。

于 2013-04-04T20:54:16.007 回答
1

如果我正确地记住了未来值,那么您就是在弄乱公式,这就是为什么您没有得到预期值的原因。

改变:

    for ( i = 1; i <= years; i++ ) {
        futureValue = ( futureValue + investment ) *
            ( 1 + annualRate );
    }

到:

futureValue = investment*Math.pow((1+annualRate), years);

不太清楚你为什么每年都要循环,但它应该基于年数的权力(再次,如果我没记错的话)

于 2013-04-04T21:30:07.597 回答