遇到的问题 #
在 JS 中计算数字经常会遇到精度的问题。使一些判断语句出现bug。
|
|
解决方法 #
不使用严格相等(==或===)来做判断,容忍两个数之间有一个很小的误差。
|
|
原理 #
比如正常的比较,0.1 + 0.2 === 0.3
相当于 0.1 + 0.2 - 0.3 === 0
。bug就出现在不是等于零,而是一个很小很小的数。这个很小很小的数就使误差。如果误差在可接受范围内,我们就还可以认为它们使相等的。
这个误差,可以通过 Number.EPSILON
1 来设置。具体设置成多少我还不知道,可能要根据做的业务的情况来确定吧。
|
|
-
阮一峰. ECMAScript 6 入门.[2020年11月12日] ↩︎