IEEE754
IEEE754
EcmaScript规范定义Number的类型遵循IEEE754
在 IEEE754 中,双精度浮点数采用 64 位存储,其中1个符号位,11个指数位,52个小数位
符号位决定了一个数的正负,指数部分决定了数值的大小,小数部分决定了数值的精度
存储结构如下:
计算方式如下:
范围:±[2^(-1023), 2^1024]
为什么0.1+0.2!==0.3
ES规范定义 Number 类型遵循 IEEE-754,IEEE-754由64位浮点数表示,其中1位符号位、11位指数位、52位小数位,精度由小数位控制,因为位数有限所以肯定无法精确表示每一个数字。将十进制数字转化为二进制时,如果无法精确表示就会产生误差,所以这就是不等的原因。
解决方式:
1 |
|
参考
IEEE754
http://example.com/2022/11/20/IEEE754/