为什么-0存在?

时间:2014-11-22 05:15:52

标签: javascript math

尝试使用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

2 个答案:

答案 0 :(得分:3)

JavaScript使用IEEE 754 standard来表示数字。来自Wikipedia

  带有关联符号的

有符号零为零。在普通算术中,-0 = + 0 = 0.但是,在计算中,某些数字表示允许存在两个零,通常用 -0(负零) +0表示(正零)。这发生在整数的一些有符号数表示中,并且在大多数浮点数表示中。数字0通常编码为+0,但可以用+0或-0表示。

     

用于浮点运算的IEEE 754标准(目前大多数支持浮点数的计算机和编程语言都使用)需要+0和-0。零可以被认为是扩展实数线的变体,使得1 / -0 =-∞和1 / + 0 = +∞,除以0仅对于±0 /±0和±∞/±∞未定义

从此Post

答案 1 :(得分:2)

帮助确定除以它时会发生什么。

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