numbers - 为什么我们有 "is not a Number"(isNan) 函数?

标签 numbers floating-point logic ieee-754

许多语言都有 isNaN() 函数。我问自己:为什么要检查不是数字

这个原因纯粹是逻辑原因还是检查不是数字比检查是数字更快?

注意这是一个纯粹的理解问题。例如,我知道我可以否定 isNaN() 来实现 isNumber() 函数。
然而,我正在寻找一个原因,为什么我们要检查而不是数字

最佳答案

In computing, NaN (Not a Number) is a value of numeric data type representing an undefined or unrepresentable value, especially in floating-point calculations.

Wiki Article

因为非数字是表达式的特殊情况。

你不能只使用 0 或 -1 或类似的数字,因为这些数字已经有意义。

不是数字意味着计算中出现问题,无法计算出有效的数字。

这与 null 的思路相同。当然,我们可以指定一个任意数值来表示 null,但这会令人困惑,并且我们会在极端情况下遇到各种奇怪的错误。

关于numbers - 为什么我们有 "is not a Number"(isNan) 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3885114/

相关文章:

mysql - 文本到列插入MySQL

c# - 解析和更改数字的脚本

jquery - 在 jQuery 中传递数字变量

python - 我需要编写一个正则表达式来识别所有以逗号分隔或不分隔的数字,不包括 4 位数字

php计算 float

c# - -10 在 1.5 × 10^-45 和 3.4 × 10^38 之间吗?

Java 对 Tic Tac Toe 程序没有意义

logic - PLC梯形逻辑序列

loops - Prime #程序识别假素数

c++ - 当它只有 4 个字节时,float 怎么可能容纳 3.4E38 这样大的数字呢?