为什么我们有"不是数字"(isNan)的功能?

Lui*_*ell 4 floating-point logic numbers ieee-754

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

是什么原因纯粹是逻辑或者是更快的检查不是一个数字,而不是一个数

请注意,这是一个纯粹的理解问题.我知道我可以否定isNaN()来实现一个isNumber()函数.
但是我正在寻找一个理由为什么我们要检查的不是数字

Rob*_*ner 7

在计算中,NaN(非数字)是表示未定义或不可表示的值的数值数据类型的值,尤其是在浮点计算中.

维基文章

因为Not a Number是表达式的特例.

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

不是数字意味着计算中出现问题,并且无法计算出有效数字.

这与思考的思路相同null.当然,我们可以指定任意数值来表示null但是它会让人感到困惑,我们会在角落情况下遇到各种奇怪的错误.