FE Interview Hub
JavaScript 中階

在 JavaScript 中 0.1 + 0.2 會是多少?為什麼?如何避免相關問題?

AI 練習作答

0.1 + 0.2 的結果

0.1 + 0.2 === 0.3 // false
0.1 + 0.2         // 0.30000000000000004

為什麼?

JavaScript 使用 IEEE 754 雙精度浮點數(64-bit)。0.1 和 0.2 無法精確表示為有限二進位小數,相加後有捨入誤差。

  • 0.10.0001100110011...(二進位循環)
  • 0.20.0011001100110011...(二進位循環)

如何解決?

1. 使用 epsilon 比較

Math.abs(0.1 + 0.2 - 0.3) < Number.EPSILON // true

2. 轉為整數計算

(0.1 * 10 + 0.2 * 10) / 10 // 0.3

3. 使用 toFixed()

parseFloat((0.1 + 0.2).toFixed(10)) // 0.3

4. 使用高精度套件

decimal.jsbig.js

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分