자바에서 0.1 + 0.2가 0.3이 아닌 이유, 그리고 엡실론으로 비교하기
·
카테고리 없음
자바로 계산기 같은 걸 만들어보다가 한 번쯤 겪는 당황스러운 순간이 있습니다. 0.1 + 0.2를 계산했는데 결과가 0.3이 아니라고 나오는 상황입니다. 분명 초등학교 때 배운 계산인데, 컴퓨터가 틀렸나 싶어지죠.사실 이건 버그가 아니라 부동소수점(floating point)을 다루는 컴퓨터라면 피할 수 없는 특성입니다. 이번 글에서는 왜 이런 일이 생기는지, 그리고 실무에서는 이 문제를 어떻게 우회하는지 정리해보겠습니다.1. 직접 확인해보기말보다 코드로 먼저 보는 게 빠릅니다.public class FloatingPointExample { public static void main(String[] args) { double a = 0.1; double b = 0.2; ..