더북(TheBook)

5 정밀도에 대한 고찰





5.1엡실론


실수 자료형에서 엡실론(epsilon)이란 1.0과 그 다음으로 표현 가능한 수(representable float) 사이의 차이를 말합니다. 정의만 봐선 어떤 의미인지 어떻게 사용되는지 알기 어려우므로 코드를 보면서 확인해 보겠습니다.

>>> import sys

>>> sys.float_info.epsilon

2.220446049250313e-16


위 코드는 sys 모듈의 float_info에 있는 epsilon을 출력한 결과입니다. 이 값이 어떻게 나왔는지 궁금합니다.

3절에서 파이썬이 사용하는 배정도(double)의 가수부가 52비트라고 했습니다. 1.0을 배정도에 맞춰 표현하면 다음과 같습니다.

1.0000 …… 0000(0: 52개) × 20

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