-2 javascript floating-point comparison
我希望这个比较能够跳过抛出错误,当我删除'='时,它的行为方式与我期望的一样.知道为什么吗?
if (!0.03509624834492526 >= 0) {
throw new Error("DOH");
}
Run Code Online (Sandbox Code Playgroud)
原因是!0.0350...将值转换为布尔值,结果为false.接下来,当使用等号时,将false与0进行比较是正确的,所以这是真的.看到这些警报:
alert('!0.03509624834492526 is "' + !0.03509624834492526 + '"')
alert('false >= 0 is "' + (false >= 0) + '"')Run Code Online (Sandbox Code Playgroud)
如果你想检查数字是否不大于或等于0,那么它只留下一个选项,它就更小了.尝试:
if (0.03509624834492526 < 0) {
throw new Error("DOH");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |