如果有人問你 0.1 + 0.2 = ? 一般人應該是毫不猶豫地回答 0.3 但是…
在 JavaScript 中 0.1 + 0.2 === 0.30000000000000004
這是什麼神奇的巫術?於是網路上流傳著這麼一張逗趣的漫畫
浮點數比對可以改為下面程式片段x = 0.2;
y = 0.3;
equal = (Math.abs(x - y) < 0.000001)
在本篇中也建議大家去讀 What Every Computer Scientist Should Know About Floating-Point Arithmetic,相信資工同學對於 IEEE 754 都不陌生…
基本上就是化整數 (Rounding) 時產生的錯誤…
這部分我再多研究研究在整理上來跟大家報告