为什么 1/0=无穷大 和 1/-0=-无穷大

Syb*_*per 4 javascript math infinity

为什么会这样:

1 === 1;// true
0 === -0;// true
1/0 === 1/-0;// false
Run Code Online (Sandbox Code Playgroud)

原因:

1/0=Infinite;
1/-0=-Infinite;
Run Code Online (Sandbox Code Playgroud)

问题:

为什么 1/0 或 1/-0 不是UndefinedNaN

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

tri*_*cot 5

这是因为IEEE 754 规范是这样定义的。

\n\n

然而,这是有原因的:仿射扩展实数系统将实数扩展到两个无穷大,这为极限计算提供了更多空间。因此,通过此扩展,除以零就不是undefinedor NaN

\n\n

考虑以下对于正x成立:

\n\n

      林x\xe2\x86\x920 (x) = 林x\xe2\x86\x920 (-x)

\n\n

然而,对于正x ,以下情况不成立

\n\n

      林x\xe2\x86\x920 (1/x) = 林x\xe2\x86\x920 (1/-x)

\n\n

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

\n\n
0 === -0;// true\n1/0 === 1/-0;// false\n
Run Code Online (Sandbox Code Playgroud)\n\n

其次,除法始终保持以下不变性:当且仅当其中一个操作数为负时,结果为负。

\n\n

这两个考虑因素都在一定程度上解释了 IEEE 754 中的原因:

\n\n
1/0 === Infinity\n1/-0 === -Infinity\n
Run Code Online (Sandbox Code Playgroud)\n