# 为何 0.1+0.2 不等于 0.3,应如何做相等比较
Issue
欢迎在 Gtihub Issue 中回答此问题: Issue 583 (opens new window)
Author
0.1,0.2 表示为二进制会有精度的损失,比较时可引入一个很小的数值 Number.EPSILON
容忍误差,其值为 2^-52。
function equal(a, b) {
return Math.abs(a - b) < Number.EPSILON;
}
Author
https://zhuanlan.zhihu.com/p/87672024
Author
十进制转二进制计算后再转十进制输出导致的误差