点击上方蓝字关注我们
小编提示: 译文由阿里巴巴企业金融事业部-虚痕同学提供,建议收藏阅读,更好了解js计算不精准的文同哦
在javascript内部,数字只有一种类型number, 遵循 IEEE-754 规范 属于双精度浮点数,采用二进制格式,占用 64 位存储空间存储。
符号位S:第 1 位是正负数符号位(sign),0代表正数,1代表负数
指数位E:中间的 11 位存储指数(exponent),用来表示次方数
尾数位M:最后的 52 位是尾数(mantissa),超出的部分自动进一舍零
如果一个数字太大,超出了64 位存储,可能导致无穷大:
alert( 1e500 ); // Infinity
这个例子可能不经常遇到,比较常见的是,精度的损失。
考虑下面的例