Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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函数出现错误,不确定我';I’我计算stv方程是错误的_Javascript_Equation - Fatal编程技术网

我的javascript函数出现错误,不确定我';I’我计算stv方程是错误的

我的javascript函数出现错误,不确定我';I’我计算stv方程是错误的,javascript,equation,Javascript,Equation,所有这些假设要做的是检查3个框中的值,例如,如果'v'或's'不为空,它将计算't',问题是它将计算's',无论我填充哪个框,它首先检查您是否已填充所有文本框(您应该只填充两个),如果'v'或's'不为空,它将检查下一个'if'是否为空?它似乎随机选择“如果”,有时还返回NaN作为答案 谢谢 var count = 0; function stv() { var v = parseFloat(document.getElementById("Text1").value); var

所有这些假设要做的是检查3个框中的值,例如,如果'v'或's'不为空,它将计算't',问题是它将计算's',无论我填充哪个框,它首先检查您是否已填充所有文本框(您应该只填充两个),如果'v'或's'不为空,它将检查下一个'if'是否为空?它似乎随机选择“如果”,有时还返回NaN作为答案

谢谢

var count = 0;
function stv()
{
    var v = parseFloat(document.getElementById("Text1").value);
    var s = parseFloat(document.getElementById("Text2").value);
    var t = parseFloat(document.getElementById("Text3").value);

    if (v != "" && t != "" && s != "") {
        "Don't be stupid..."
        count++
    }
    if (v!="" && s!=""){
        document.getElementById("result").innerHTML = "time= " + s / v + "hours, or " + (s / v) * 60 + "minutes";
        count++;
    }
    if (s != "" && t != "") {
        document.getElementById("result").innerHTML = "velocity= " + s / t + "kph";
        count++;
    }
    if (v != "" && t != "") {
        document.getElementById("result").innerHTML = "displacement= " + (v * t) + "kilometers";
        count++;
    }

    if (count == 0){
        document.getElementById("result").innerHTML = "Fill in at least two parameters...";
}
    count = 0;
    document.getElementById("Text1").value = "";
    document.getElementById("Text2").value = "";
    document.getElementById("Text3").value = "";
}
您的if检查“失败”,因为“”的parseFloat为NaN且不等于“”。因此,您应该检查它是否不是一个数字,也不等于一个空字符串

var a=parseFloat(“”)
if(isNaN(a))console.log(“我不是一个数字”);

如果(a!=“”)console.log(“我不是空字符串”)将转换为数字的值与空字符串进行比较。在调用
parseFloat
之前,您应该比较输入的值。添加到上述注释中,即使在第一个if之后,您的另一个if也将执行,以检查是否所有3个都已填写。使用
elseif
可以解决这个问题。只需使用
if(v&s)
等等@ChrisG
0
不是有效的number@epascarello事实并非如此,因为除以0是未定义的,计算速度或时间为0的速度毫无意义。