1、js是种弱类型、动态的、解释型的脚本语言,js比较灵活。
2、js使用的是“双精度”格式(即64位二进制),遵循IEEE754规范。
3、js在处理数据上有漏洞,
例如:0.1+0.2===0.3; // false (js在运算过程中0.1+0.2不是等于0.3,而是一个比较接近的数字0.3000000000000004)
解决方案:用“机器精度”(通常为 2^-52 , 2.220446049250313e-16),在es6开始该值定义为Number.EPSILON
So, 判断为 Math.abs( n1 - n2 ) < Number.EPSILON