더북(TheBook)

앞의 코드와 계산 방식이 같은 예제를 하나 더 만들어 보겠습니다. 대신 이번에는 0.01을 100번 더하는 게 아니라 0.015625를 100번 더할 계획입니다. 0.01보다 더 복잡한 수이므로 계산 결과로 정확한 값인 1.5625가 도무지 나올 것 같지 않습니다.

>>> a = 0.015625

>>> a

0.015625

>>> result = 0.0

>>> for i in range(100):

             result += a

>>> result

1.5625


앗, 그런데 이번에는 결과로 정확한 값이 나왔습니다. 혹시 우연일까 싶어 여러 번 되풀이해도 계속 같은 답이 나옵니다. 분명히 이 값은 오차 없이 정확히 계산되었습니다. 어떻게 된 일일까요?

이 결과를 이해하려면 컴퓨터가 실수를 표현하는 방법인 부동소수점이라는 개념을 이해해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.