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
。