2015-09-27 57 views
-1

我被困在下面提到的这种特殊的情况。有人请向我解释下列行为的原因是什么。为什么Infinity-Infinity NaN?

为什么Infinity - Infinity结果NaN, but NaN === (Infinity-Infinity)结果false

+6

因为'NaN!== NaN'。 – GolfWolf

+0

无穷有时被定义为定义一个不包含所有元素但也是无限的子集的能力。从无限中抽象无穷无法给出一个结果,因此不是一个数字。这就是说不可能验证这两个事物是否相等,如果你知道这两个事物都不是数字。 – DrunkWolf

回答

3

答案在于完整形式的NaN
NaN代表非数字
因此,如果某件事不是数字,则无法比较或检查其是否相等。

去数学上,

Infinity - Infinity = NaN (1) 

NaN == Infinity - Infinity (2) 
(1)中的NaN认为表示结果的值

这里是不可量化。

而在(2)中,您正在检查两个不可量化的实体的相等性。

希望是有道理的。

P.S.我知道字符串值可以比较,但NaN并非如此。