Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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浮点比较给出了意外的结果_Javascript_Floating Point_Comparison - Fatal编程技术网

javascript浮点比较给出了意外的结果

javascript浮点比较给出了意外的结果,javascript,floating-point,comparison,Javascript,Floating Point,Comparison,我希望这个比较不会抛出错误,当我删除“=”时,它的行为与我预期的一样。知道为什么吗 if (!0.03509624834492526 >= 0) { throw new Error("DOH"); } 找到答案,必须明确比较顺序,见下文: if (!(0.03509624834492526 >= 0)) { throw new Error("DOH"); } 原因是!0.0350…正在将值转换为布尔值,结果为false。接下来,当使用等号时,将false与0进行比

我希望这个比较不会抛出错误,当我删除“=”时,它的行为与我预期的一样。知道为什么吗

if (!0.03509624834492526 >= 0) {
    throw new Error("DOH");
}

找到答案,必须明确比较顺序,见下文:

if (!(0.03509624834492526 >= 0)) {
    throw new Error("DOH");
}

原因是
!0.0350…
正在将值转换为布尔值,结果为false。接下来,当使用等号时,将false与0进行比较是true,所以这是真的。请参阅以下警报:

警报(“!0.03509624834492526是”+!0.03509624834492526+”)

警报('false>=0是“+(false>=0)+”)
可能是因为您使用了3个运算符,即(!,>,=)

可以在表达式中使用2个运算符

你可以像这样改变你的表情

if((!0.03509624834492526 > 0)&&(!0.03509624834492526 = 0)){
--- 
}
希望这对您有用

“未捕获引用错误:赋值中的左侧无效”。这根本不是JavaScript或任何其他编程语言的工作方式,而是
!(x>=y)
使用
x