2010-01-18

Floating Point Arithmetic - 2010 대학원 수업 - 기초수학

컴퓨터로 부동소숫점 연산을 할 때는 조심해야 합니다.

내가 실제로 겪었던 한 예를 참고로 보냅니다.

아래 두 식은 동일해 보이지만, R에서 test해보면 어떤 결과가 나올까요?
99/(72*1.3) == 99/72/1.3

같은 내용을 MS-EXCEL에서도 test해보세요.
=IF(99/(72*1.3)=99/72/1.3,"T","F")

좀 더 자세한 것은 첨부파일을 참고하세요.
읽기 쉬운 것은 아닌데, 여유 되면 보세요.

2 comments:

  1. 첨부파일은 post가 안되네요. 몰랐어요.
    "What every computer scientist should know about float-point arithmetic.pdf" 로 검색하면 찾을 수 있습니다.

    ReplyDelete
  2. R도 double precision이라 15자리까지 표시되는 것으로 알고 있었는데 16자리까지 표시되기도 하네요.

    > 99/(72*1.3)
    [1] 1.0576923076923075
    > 99/72/1.3
    [1] 1.057692307692308

    엑셀은 14자리까지만 표시되는 것도 이제야 알았습니다.

    ReplyDelete