跳至主要內容

正零和负零的关系及区别

fxssjavascript小于 1 分钟

本文转自: 数值open in new window

javascript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,00.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