---
type: snippet
tags: [javascript, floating-point]
status: release
ctime: 2025-12-28
mtime: 2025-12-28
---

JavaScript 부동소수점 오차 - `0.1 + 0.2 = 0.30000000000000004`

IEEE 754 64비트 부동소수점 표준. 0.1은 이진법으로 무한 반복(`0.0001100110011...`)이라 근사치 저장됨.

```javascript
// 해결책
;(1.1 * 10 + 0.1 * 10) / 10 // 정수 변환
parseFloat((1.1 + 0.1).toFixed(1)) // toFixed
Math.abs(1.1 + 0.1 - 1.2) < Number.EPSILON // 비교 시
// 정밀 계산: decimal.js, big.js, bignumber.js
```

JS만의 문제 아님. Python, Java, C++ 등 IEEE 754 사용하는 모든 언어에서 동일.
