为什么在JavaScript里0.1 + 0.2不是等于0.3?
根据浮点数的定义,非整数的Number类型无法用 ==(===也不行) 来比较,一段著名的代码,为什么在JavaScript中,0.1+0.2不能=0.3:·
1 |
|
这里输出的结果是false,说明两边不相等的,这是浮点运算的特点,浮点数运算的精度问题导致等式左右的结果并不是严格相等,而是相差了个微小的值。
所以实际上,这里错误的不是结论,而是比较的方法,正确的比较方法是使用JavaScript提供的最小精度值:
1 |
|
检查等式左右两边差的绝对值是否小于最小精度,才是正确的比较浮点数的方法。这段代码结果就是 true 了。
为什么在JavaScript里0.1 + 0.2不是等于0.3?
https://thaneyang.github.io/2022/03/为什么在JavaScript里0-1-0-2不是等于0-3?.html