JS中的“0.1 + 0.2 != 0.3”問題

js中有個經典“0.1 + 0.2 != 0.3”的問題,

if(0.1 + 0.2 === 0.3) {
    alert('yes')
} else {
    alert('no')
}

執行後會彈出”no“。

 

what?

 

原來,js中浮點數不能直接用等號判斷相等,需要通過”2個數的差值小於等於最小精度值“判斷相等,如下:

if (Math.abs(num1 - num2) <= Number.EPSILON) {
    // 2個數相等
} else {
    // 2個數不等
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章