1 실수 연산의 함정
실수 표현 방식을 알아보기 전에 간단한 실수 연산 예제를 만들어 보겠습니다.
>>> a = 0.01
>>> result = 0.0
>>> for i in range(100):
result += a
이 코드를 보면 a가 0.01이고 이를 100번 더했으니 당연히 1이 나오기를 기대합니다. 하지만 결과를 확인해 보면 예상과 다릅니다.
>>> result
1.0000000000000007
1에 매우 가까운 수라고는 해도 1은 아닙니다. 우리는 지금 세상에서 가장 정확하기로 소문난 컴퓨터와 대화를 하고 있습니다. 0.01을 100번 더하라는 간단한 계산 결과조차 정확하지 않은데 앞으로 컴퓨터를 어떻게 믿고 사용할 수 있을까요? 하지만 이 컴퓨터는 분명 계산을 잘 했고 그 결과를 제대로 보여 주었습니다.