为什么 -0 存在

Why does -0 exist?

本文关键字:存在 为什么      更新时间:2023-09-26

在试验JavaScript时。 我正在用一些奇怪的小代码片段进行测试,以下是我的一些发现(以帮助理解我是如何找到-0的),

在控制台中执行+[]时,这将返回0 。 我不知道为什么,但它确实如此。因此,这意味着数组的正值0..

这样做之后,我很好奇并尝试了以下方法:

console.log(-[]);

这返回-0...

-0

有什么意义?0 和 -0 都没有值,所以负数真的是不必要的...... 还是吗?也许 JavaScript 有 -0 的目的?

除此之外。 除了使用-0本身或使用-[]之外,我找不到任何其他方法来复制-0......


其他一些奇怪的发现,让我的问题-0

(-0) + (-0) = 0
(-0) - (-0) = -0
(-0) * (-0) = 0
(-0) / (-0) = NaN // of course
JavaScript使用

IEEE 754标准来表示数字。来自维基百科:

有符号零

是带有关联符号的零。在普通算术中,−0 = +0 = 0。但是,在计算中,某些数字表示允许存在两个零,通常由 −0(负零)和 +0(正零)表示。这发生在整数的某些有符号数表示形式和大多数浮点数表示形式中。数字 0 通常编码为 +0,但可以用 +0 或 −0 表示。

IEEE 754 浮点运算标准(目前由大多数支持浮点数的计算机和编程语言使用)要求 +0 和 −0。零可以被视为扩展实数线的变体,例如 1/−0 = −∞ 和 1/+0 = +∞,除以零仅未定义 ±0/±0 和 ±∞/±∞。

来自这篇文章

这是为了帮助确定除以它时会发生什么。

如果除以+0,则得到+Infinity。如果除以-0,则得到-Infinity。(当然,对于非零分子)。