正零和负零的关系及区别
小于 1 分钟
本文转自: 数值
javascript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,0
与 0.0
是相同的,是同一个数。
0 === 0.0 // true
0 === 0.00 // true
javascript 内部实际上存在2个 0
:一个是 +0
,一个是 -0
,区别就是64位浮点数表示法的符号位不同。它们是等价的。
-0 === +0 // true
0 === -0 // true
0 === +0 // true
几乎所有场合,正零和负零都会被当作正常的 0
。
+0 // 0
-0 // 0
(-0).toString() // '0'
(+0).toString() // '0'
唯一有区别的场合是,+0
或 -0
当作分母,返回的值是不相等的。
(1 / +0) === (1 / -0) // false
1 / +0 // Infinity
1 / -0 // -Infinity
0 / 0 // NaN