더북(TheBook)

부동소수점의 정밀도에 관한 예를 하나만 더 보고 실수에 대한 이야기를 마무리하겠습니다.


a는 1.0000 …… 0000(0: 52개) × 253입니다. aa 다음에 표현 가능한 수 사이의 차이는 253에 엡실론을 곱해 구할 수 있으며 그 값은 2.0입니다. 그러므로 a1.0을 더한 b는 원래 의도한 값을 표현하지 못하고 a와 같은 값을 갖게 됩니다. 1.0의 차이조차 표현할 수 없는 정밀도입니다.

>>> a = (2.0)**53

>>> a

9007199254740992.0

>>> b = a + 1.0

>>> a = = b

True

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