ES6精华:数值扩展

1 基础

1.1 极值

JS采用IEEE 754标准的64位双精度格式存储数值。 
数值的精度最多可达到53个二进制位(1个隐藏位和52个有效位)。 
如果数值的精度超过此限度,第54位及后面的会被丢弃。

数值的极值分为两种:可表示的极值和可精确计算的极值(浮点型不算)。 
可表示的极值:[5e-324, 1.7976931348623157e+308]。 
可精确计算的极值:[1 - Math.pow(2, 53), Math.pow(2, 53) - 1]

超过精度的数值可正确显示,但由其计算得出的结果可能不准确。

let num = 9007199254741002;
console.log( num ); // 9007199254741002
console.log( num + 1 ); // 9007199254741004
console.log( num + 3 ); // 9007199254741004

let n1 = Math.pow(2, 53) - 1 + 1 + 1;
let n2 = Math.pow(2, 53) - 1 + 1 + 2;
console.log(n1 === n2); // true

对于整数,最多能精确显示16个十进制位,超过会被截断。 
对于小数,最多能精确显示小数点后16个十进制位,超过会被截断。

超过的位数会被截断。

console.log( 3.000000000000001 === 3 ); // false
console.log( 3.0000000000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值