본문 바로가기

프로그래밍/미분류

부동소수점 연산

반응형

손가락이 세 개인 외계인 나라에서는 3진수를 씁니다. 무슨말이냐면, 0.1 이 1/3, 0.2가 2/3, 0.3은 없고, 3/3 즉 1 입니다. 0.1+0.1+0.1 = 1 입니다. 그리고 어찌된 일인지 이들의 컴퓨터는 십진수로 계산이루어 집니다. 즉 외계인의 3진수 0.1은 컴퓨터 내부에서는 0.33333 (소수점 아래 5자리가 한계라고 합시다.)이 됩니다. 그래서, 컴퓨터에게 0.1 + 0.1 + 0.1 을 계산시키면, 우선 십진수로 변환하여 0.33333 + 0.33333 + 0.33333 을 더해서 0.99999 가 됩니다. 이것은 외계인이 기대한 답인 1과 다르게 됩니다.

728x90