JavaScript数值最大精度
根据国际标准 IEEE 754,JavaScript 浮点数的64个二进制位,从最左边开始,是这样组成的:
第1位:符号位,0表示正数,1表示负数
第2位到第12位:指数部分
第13位到第64位:小数部分(即有效数字)
符号位决定了一个数的正负,指数部分决定了数值的大小,小数部分决定了数值的精度
0-4 5-8 9-12 13-16 ... 56-60 61-64
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx |64位
IEEE 754中规定有效数字第一位默认总是1,不保存在64位浮点数之中
即:有效数字总是1xx...xx的形式,其中xx..xx的部分保存在64位浮点数之中,最长可能为52位
因此,JavaScript 提供的有效数字最长为53个二进制位
JavaScript表达的最大整数是:pow(2, 53) = 9007199254740992
大于2的53次方以后,多出来的有效数字(最后三位的111)都会无法保存,会变成0
本文依据IEEE754标准,解析了JavaScript中浮点数的组成原理及其限制,详细阐述了JavaScript能够提供有效数字的最长位数,并给出了JavaScript所能表达的最大整数值。

5319

被折叠的 条评论
为什么被折叠?



