0.1 + 0.2는 0.3이 아니라고?

0.1 + 0.2는 무조건 0.3이라고 생각하셨나요? 컴퓨터에서는 다릅니다! 왜 다른지 쉽게 알려드립니다.

우리는 일상적인 계산에서 0.1 + 0.2를 하면 그 결과가 당연히 0.3이라고 생각합니다. 그러나 이런 간단한 계산을 컴퓨터가 처리할 때는 결과가 예상과 다르게 나옵니다. 컴퓨터에서 0.1 + 0.2를 계산하면 0.30000000000000004와 같은 값이 나오는데, 왜 이런 결과가 나오는지 알아보겠습니다.

이 문제의 근원은 ‘부동 소수점’ 연산에 있습니다.

컴퓨터는 숫자를 이진수 형태로 저장하고 연산을 합니다. 이진수로 변환될 때, 0.1과 0.2는 정확하게 변환되지 못하고 근사치로 처리됩니다. 이 때문에 컴퓨터는 0.1과 0.2를 정확한 값이 아니라 그에 근접한 수로 계산하게 됩니다.

여기서 중요한 점은 컴퓨터가 이런 방식으로 숫자를 처리하는 것은 오류나 버그 때문이 아니라 설계된 방식이라는 것입니다. 컴퓨터는 유한한 메모리를 가지고 있기 때문에 무한한 수를 정확하게 표현하는 것은 불가능합니다. 이 때문에 특정한 정밀도를 가진 근사치로 숫자를 표현하고 계산하게 됩니다.

부동 소수점 연산의 이런 특성은 컴퓨터 과학, 물리학, 엔지니어링 등 많은 분야에서 중요한 고려 사항입니다. 컴퓨터가 숫자를 근사치로 처리하기 때문에 결과가 정확하게 일치하지 않는 경우가 많이 발생합니다. 이 때문에 실수 연산을 할 때는 항상 오차 범위를 고려해야 합니다.

결론적으로, 컴퓨터에서 0.1 + 0.2의 결과가 정확히 0.3이 아니라는 것은 컴퓨터의 숫자 표현 방식과 부동 소수점 연산의 특성 때문입니다.