1.JavaScript 内部,所有数字都是以64位浮点数形式储存,没有整数。
1 === 1.0 // true
0.1 + 0.2 === 0.3// false
(0.3 - 0.2) === (0.2 - 0.1)// false
2.js数字64位组成:
- 第1位:符号位,
0
表示正数,1
表示负数 - 第2位到第12位(共11位):指数部分
- 第13位到第64位(共52位):小数部分(即有效数字)
3.JavaScript 对15位的十进制数都可以精确处理,大于2的53次方的数值,都无法保持精度。
4.JavaScript 能够表示的数值范围为2e1024到2e-1023(开区间),超出这个范围的数无法表示。正向溢出返回Infinity,负向溢出返回0
Math.pow(2, 1024) // Infinity
Math.pow(2, -1075) // 0
5.以下两种情况,JavaScript 会自动将数值转为科学计数法表示,其他情况都采用字面形式直接表示。
- 小数点前的数字多于21位。
- 小数点后的零多于5个。
1234567890123456789012//1.2345678901234568e+21
0.0000003 // 3e-7
6.JavaScript 存在2个0
:一个是+0
,一个是-0。唯一区别是它们做分母时返回值不一样。分别返回
+Infinity与-Infinity。