더북(TheBook)

float은 부동소수점의 약어로, 컴퓨터에서 보통 표현하는 소수점입니다. 프로그램에서 부동소수점이라고 하면 첫 번째로 (1) 2.5처럼 간단한 소수점과 (2) π처럼 끝없이 이어지는 복잡한 실수를 떠올립니다. 두 번째는 3.14처럼 간단히 근사해서 사용하기도 하지요. 두 가지 경우 모두 우리 생각이 컴퓨터의 수치 계산으로 구현될 때 문제가 복잡해집니다.

다음은 그에 관한 몇 가지 사실입니다.

1. 컴퓨터의 메모리는 유한합니다. 임의의 수치 값을 표현하기 위해 무한히 많은 숫자를 저장할 수 없습니다.

2. 이나 π 같은 숫자들은 소수점 이하로 무한히 많은 수가 이어집니다.

3. 컴퓨터는 모든 정보를 비트(bits)로 저장합니다. 비트는 밑이 2인 숫자 혹은 바이너리(binary)(이진수)라고 합니다.

4. 십진수와 이진수로 쓸 때 달라지는 무한 소수가 존재합니다.

 

첫 번째와 두 번째 사실 때문에 저장할 숫자를 근사(approximate)해야 합니다. 실제 숫자에 가까워질 수는 있지만, 정확히 그 숫자를 표현할 수는 없습니다. 세 번째와 네 번째 사실에 근거하여 3.3처럼 간단해 보이는 숫자를 바이너리로 바꾸면 상황이 매우 복잡해질 수도 있습니다. 을 소수점으로 표현하는 것처럼 반복되는 숫자가 나올 수 있지요. 종합하면 부동소수점을 정확히 비교한 결과를 완벽히 신뢰할 수 없다는 것입니다.

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