9007199254740991 js 最大安全整数 探秘 JavaScript 世界的神秘数字

没问题,这个神秘数字 9007199254740991 就是

来看看为什么这个数字是最大安全整数,因为如果比这个数更大,尾数位已经全部是 1 了,只能增大指数、

探秘 JavaScript 世界的神秘数字 1.7976931348623157e+308

https://cloud.tencent.com/developer/article/2112444

特殊值 0,Infinity,NaN

刚才提到了,指数部分全为 1 或者全为 0 会有特殊作用,我们先来看看 3 组特殊值。

0:指数位全 0,尾数位也全是0,则表示 ±0

[图片上传失败...(image-3143e5-1712891395995)]

:指数全 1,尾数全 0,则表示 ±∞,也就是 Number.POSITIVE_INFINITYNumber.NEGATIVE_INFINITY

[图片上传失败...(image-281878-1712891395995)]

NaN:指数全1,尾数不全为 0,则表示非数字 NaN

最小精度 Number.EPSILON
我们来看看最后一个神秘数字 Number.EPSILON,2.220446049250313e-16 是如何来的。
Number.EPSILON === 2**-52 // true

回到那道经典题目 “0.1 + 0.2 为什么等于 0.30000000000000004”
可以看到,0.1 和 0.2 转为二进制都是无限循环小数,转为 64 位浮点数会有精度损失,我们来转换一下:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容