Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数返回NaN_Javascript_Nan - Fatal编程技术网

Javascript函数返回NaN

Javascript函数返回NaN,javascript,nan,Javascript,Nan,这件事我真的需要一些帮助。该函数用于计算估计的结算成本。但由于某种原因,无论我用它做什么,结果总是“NaN”。有人能帮我吗?我不知道哪里出了问题 function calc_closing_costs(form) { var purch_price = document.getElementById('purch_price'); var ont_ltt = 0; if ((isNaN(parseInt(purch_price.value, 10))) || purch_

这件事我真的需要一些帮助。该函数用于计算估计的结算成本。但由于某种原因,无论我用它做什么,结果总是“NaN”。有人能帮我吗?我不知道哪里出了问题

function calc_closing_costs(form) {
    var purch_price = document.getElementById('purch_price');
    var ont_ltt = 0;
    if ((isNaN(parseInt(purch_price.value, 10))) || purch_price === "") {
        alert("You must enter a number!");
    } else if (parseInt(purch_price.value, 10) < 0) {
        alert("You must enter a positive number!");
    }
    if (400000 < parseInt(purch_price.value, 10)) {
        ont_ltt = (parseInt(purch_price.value, 10) - 400000) * 0.02 + 4475;
    } else {
        if (250000 < parseInt(purch_price.value, 10)) {
            ont_ltt = (parseInt(purch_price.value, 10) - 250000) * 0.015 + 2225;
        } else {
            if (55000 < parseInt(purch_price.value, 10)) {
                ont_ltt = (parseInt(purch_price.value, 10) - 55000) * 0.01 + 275;
            } else {
                ont_ltt = parseInt(purch_price.value, 10) * 0.005;
            }
        }
    }
    var legal_fees = document.getElementById('legal_fees');
    var closing_adj = document.getElementById('closing_adj');
    var result = document.getElementById('result');

    if (purch_price.value === "" || purch_price.value != parseFloat(purch_price.value)) {
        purch_price.value = 0;
    }
    if (legal_fees.value === "" || legal_fees.value != parseFloat(legal_fees.value)) {
        legal_fees.value = 0;
    }
    if (closing_adj.value === "" || closing_adj.value != parseFloat(closing_adj.value)) {
        closing_adj.value = 0;
    }
    result.value = 0;
    result.value = parseInt(result.value, 10);
    result.value = parseInt(ont_ltt.value, 10) + parseInt(legal_fees.value, 10) + parseInt(closing_adj.value, 10);
    document.getElementById("tecc").innerHTML = result.value;
}
功能计算结算成本(表格){
var purch_price=document.getElementById('purch_price');
var ont_ltt=0;
如果((isNaN(parseInt(purch_price.value,10)))| | purch_price==“”){
警报(“您必须输入一个数字!”);
}else if(parseInt(purch_price.value,10)<0){
警报(“您必须输入正数!”);
}
如果(400000
这是:

    result.value = parseInt(ont_ltt.value, 10) + parseInt(legal_fees.value, 10) + parseInt(closing_adj.value, 10);
没有意义-“ont_ltt”是一个JavaScript变量,而不是页面元素

应该是:

     result.value = ont_ltt + parseInt(legal_fees.value, 10) + parseInt(closing_adj.value, 10);

嗯,也许应该,;你没有发布页面或者你想要做的事情的总体计划。尤其是使用
parseInt()
似乎有问题。它将始终为您提供一个整数,并截断值的任何小数部分(小数点后的任何部分)。

您的代码不应该一遍又一遍地对同一事物调用
parseInt()
。调用一次并保存结果。嘿,尖头!谢谢你的回复。我从代码中删除了不必要的parseInt(不必要的意思是我一个接一个地删除了它们,并检查了脚本是否仍在工作,正如您所看到的,我是一个新手),并将ont_ltt替换为parseInt(ont_ltt.value,10)起到了帮助作用。它终于给了我一个数字!谢谢!我真的很感谢你的帮助。