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