javascript - `always returns unordered result` 意味着 `returns false` 吗

标签 javascript floating-point ieee-754

我正在阅读有关 NaN here 的内容它说:

A comparison with a NaN always returns an unordered result even when comparing with itself.

我对“无序”这个词感到困惑。出于实际原因,这是否意味着比较将始终评估为 false?看来是这样的:

// all statemens below evaluate to false

NaN === NaN
NaN > NaN
NaN < NaN

NaN > 3
NaN < 3
NaN === 3

最佳答案

是的。比较两个 float 时ab ,恰好有 4 个结果之一:

  • a小于b
  • a等于b
  • a大于b
  • ab是无序的。

IEEE754 规范规定 aba 时是无序的或b是 NaN(包括 ab 都为 NaN 的情况)。

在大多数语言中,前 3 个都有自己的谓词(通常为 <==> )。无序情况则不然,但可以通过检查所有其他情况是否为假来进行测试。

关于javascript - `always returns unordered result` 意味着 `returns false` 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39991705/

相关文章:

javascript - Jquery窗口宽度的多个条件类似于媒体查询

javascript - 加载变化的 div

assembly - 以下带有 FLDCW 指令的 x86 汇编代码有何作用?

python - 将指数表示法数字转换为字符串 - 解释

javascript - 为什么 console.log 只显示 0.1+0.2=0.30000000000000004 产生的部分数字

c++ - 当一个相对较大的浮点值与两个相对较小的浮点值相乘时,消除误差的最佳算术顺序是什么

c++ - 重新审视浮点比较

javascript - 生成动态Nuxt路由时出错 : TypeError: Cannot read property '_normalized' of undefined

python - 为什么 "decimal.Decimal(' 0') < 1.0"在 Python 2.6.5 中产生 False

php - 为什么我得到的日期是错误的?