跳至主要內容

JS数字精度丢失问题

约 166 字

JS数字精度丢失问题

JS中的数字是以科学计数法的形式存储64位双精度浮点数编码。

其中第1位为符号位,0表示正数,1表示负数;中间11位为指数位;最后52位为尾数位,会舍0进1。

在计算时会将十进制数转换成二进制,计算完成后再转换成十进制数,并且由于小数位数无限但二进制位数有限,因此引起计算误差,造成数字精度丢失。

解决方法是将小数转换成整数在计算,或是使用第三方库Math.js或BigDecimal.js。

上次编辑于: