JavaScript中精度丢失那点事儿
在开发项目的过程中,我们难免会遇到数值计算的场景,比如电商类项目的金额计算等,此时,我们通常会遇到数值计算结果和我们的预期不一致的情况,通常发生这种情况的原因都是因为JavaScript精度丢失的问题,接下来的内容将会从JavaScript中发生精度丢失的常见情况、发生的原因以及解决方案三个方面进行展开。
一、JavaScript精度丢失常见情况
JavaScript精度丢失主要发生在小数、大数中,主要有以下几种情况:
1、浮点数运算(加减乘除)
嗯?0.1+0.2 不是等于0.3嘛?后面一连串的是什么玩意?
2、大整数
啊这,16位数和17位数居然相等,一个数居然和多个数相等
二、计算机数字存储方式——IEEE754
在我们去探究以上现象出现的原因之前,先了解下计算机数字存储方式。
JavaScript的数字存储方式符合IEEE754的规范,那什么是IEEE754?
IEEE754为IEEE二进制浮点数算术标准(ANSI/IEEE S