551710
javascript 采取 64位 来存储浮点数,而因为 0.1 化为二进制的无限1100循环导致0.1+0.2!==0.3,存储规则为:
- 1位存储符号
- 11位存储指数部分
- 52位存储尾数部分
这里的指数,尾数代表什么呢?
(0.1).toString(2)
// '0.0001100110011001100110011001100110011001100110011001101'
(0.1).toString(2).split('.')[1].length
// 55,右边一共55位,并不是52位,那之前的尾数部分代表什么呢?