거의 모든 언어에서 0.1 + 0.2가 0.3이 아닌 값을 냅니다. 버그가 아니라 IEEE 754의 설계 결과입니다. 2진 부동소수점이 어떻게 수를 담는지, 왜 10진 소수를 정확히 표현할 수 없는지, 엡실론 비교와 돈 계산은 어떻게 해야 하는지, NaN·무한대·음수 0의 정체와 누적 오차까지, 부동소수점의 진실을 밑바닥부터 풀어냅니다.
"0.1 + 0.2 = 0.30000000000000004"를 검색해본 적 없는 개발자는 없다. 하지만 그 뒤의 IEEE 754 표준을 제대로 아는 사람은 드물다. 부호/지수/가수의 비트 배치, NaN과 Infinity의 비트 레벨, 서브노멀이 느린 이유, 은행 잠깐 멈추게 만든 Intel FDIV 버그, 우주선을 폭발시킨 Ariane 5 사고, 그리고 현대 LLM을 움직이는 bfloat16/FP8까지 — 부동소수점의 모든 함정을 10,000자로 파헤칩니다.