JS NAN在某些情况下

时间:2020-11-05 12:21:09

标签: javascript

我需要创建一个表格来计算每月付款。 我有一个数据库表,看起来像这样: enter image description here

我创建了此函数:

function calculatePMT () {
    var loan_amount = document.getElementById("loan_amount").value;
    var no_of_months = document.getElementById("no_of_months").value;
    for (var x = 0; x < passedArray.length; x++) {
        const val = passedArray[x];
            if (loan_amount >= val[1] && loan_amount < val[2]) {
                if (no_of_months == val[3]) {
                    var rate = val[0];
                }
            }
        }
        pmt = (loan_amount/no_of_months)*(1+(rate/10));
        if(pmt != "NAN") {
            document.getElementById("ans").innerHTML = pmt;
            document.getElementById("amount").value = pmt;
        }
}

问题是在某些情况下(金额为600、700、800、900或5900以上),显示为NAN错误。

在这里工作: enter image description here

但不在这里: enter image description here

1 个答案:

答案 0 :(得分:0)

对于超过5900的贷款,您只能获得60个月的贷款,因此,由于rate中的undefinedpmt = (loan_amount/no_of_months)*(1+(rate/10)),贷款将在其他数月内失效。

对于其他输入情况,我想toFixed函数存在一些问题。建议您使用return parseFloat(value.toFixed(2))之类的简单方法来尝试找出问题所在