看了好多文章,我还是比较认可这位博主的说法:
https://www.codercto.com/a/107226.html
本文只是自己做记录,是篇水文,大家可以直接访问上面链接哦~
根据 IEEE 754 标准,有
JS能表示的最大精度应该是(253 - 1)即9007199254740991也即Number.MAX_SAFE_INTEGER
JS能表示的最大正整数是21023 * [(253 - 1) * 2-52]即 1.7976931348623157e+308也即Number.MAX_VALUE
1、- 52是怎么来的?
因为科学计数法,整数位一定是一位,所以要右移52位
2、公式中E的范围怎么来的?
根据标准中的双精度存储规则,会有64个比特位存储Number,首位表示正负数,中间11位表示指数,那么可表示的数应该是[0, 2047],但是首尾两个数会有特殊用途(咱也不知道用来干嘛的,也没地方问)
3、F的范围怎么来的?
如果是十进制的科学计数,那么精度部分的整数范围一定是[1, 9],那么二进制的精度的整数部分只能是1了,所以我们52位全部用来表示小数部分,所以F的最大值就是1.1...1(包括整数部分一个53个1),即(253-1) * 2-52
以上,欢迎批评指正,大家一起学习啊
标签:表示,Number,52,关于,253,JS,精度 From: https://www.cnblogs.com/abby-lrwei/p/16856433.html