为什么1/0 = Infinity和1 / -0 = -Infinity

时间:2018-11-03 09:09:08

标签: javascript math infinity

为什么会这样:

1 === 1;// true
0 === -0;// true
1/0 === 1/-0;// false

原因:

1/0=Infinite;
1/-0=-Infinite;

问题:

为什么不是1/0或1 / -0 未定义 NaN

  

它不能是Infinity或-Infinity,因为0等于-0,所以1/0等于1 / -0,我应该说,但为什么不是呢?以及为什么它不是未定义的(我的计算器说什么)或NaN。

1 个答案:

答案 0 :(得分:2)

这是因为IEEE 754 specifications是这样定义的。

这是有原因的:affinely extended real number system 用两个无穷大扩展实数,这为使用limits进行计算提供了更多空间。因此,通过这种扩展,除以零不是undefinedNaN

请考虑以下情况对于正数 x 是正确的:

lim x→0 (x)= lim x→0 (-x)

对于肯定的 x ,以下内容为

lim x→0 (1 / x)= lim x→0 (1 / -x)

请注意上述带有限制符号的比较如何映射到您列出的比较:

0 === -0;// true
1/0 === 1/-0;// false

第二,除法始终保持以下不变性:当且仅当正好一个操作数为负时,结果为负。

这两个考虑因素都证明了在IEEE 754中的应用理由:

1/0 === Infinity
1/-0 === -Infinity