diff --git a/深入探索 JavaScript/JavaScript 类型.md b/深入探索 JavaScript/JavaScript 类型.md index e0362cc..4b80896 100644 --- a/深入探索 JavaScript/JavaScript 类型.md +++ b/深入探索 JavaScript/JavaScript 类型.md @@ -17,4 +17,5 @@ - JavaScript 中的 Number 类型有 18437736874454810627(即 2^64-2^53+3) 个值 - NaN其实是 2^53-2 个特殊数字的合集,NaN并不是一个数,而是一堆数据合集,所以NaN ! == NaN -- 在 JavaScript 中 `0.1 + 0.2 !== 0.3` ,这是因为对于硬件系统来说,由高低电平表示1和0,这样我们使用的高级语言都要用二进制进行编码,不同的进制数在转换的时候都会有精度的问题 \ No newline at end of file +- 在 JavaScript 中 `0.1 + 0.2 !== 0.3` ,这是因为对于硬件系统来说,由高低电平表示1和0,这样我们使用的高级语言都要用二进制进行编码,不同的进制数在转换的时候都会有精度的问题,所以相加之后因为一些误差就导致值不相等 +- 在比较浮点数的时候,不应该使用等于或者全等,应该使用 JavaScript 提供的最小精度值 : `(Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON)` \ No newline at end of file