실수의 메모리표현
모든 데이터는 메모리 상에 2진수 형태로 저장된다. 이는 실수도 마찬가지다. 다만, 실수를 저장하는 방식이 2개가 있다. 하나는 고정소수점 방식이고 다른 하나는 부동소수점 방식이다.
고정소수점 방식
고정 소수점 방식이란 실수를 부호, 정수부, 소수부로 나눠서 저장하는 방식이다.
고정소수점 방식은 직관적이다. 하지만 정수부와 소수부의 크기 때문에 표현할 수 있는 범위가 적다. 또한 0.12와 같이 작은 숫자를 표현하는 데에 32비트를 사용하는 것은 메모리 낭비가 심하다.
부동소수점 방식
부동소수점 방식은 고정소수점 방식의 단점을 해결한다. 실수를 부호, 지수부, 가수부로 나눠 표현한다.
지수부를 통해 숫자 전체의 폭을 정하고 가수부를 통해 숫자의 실질적인 정보를 표현한다. 현재 사용되고 있는 부동소수점의 계산방식은 IEEE 754 표준을 따르고 있다.
부동소수점 방식은 넓은 범위의 실수를 표현할 수 있다는 장점이 있지만 무한 소수에 의한 오차가 발생할 수 있다. 메모리 상의 한계 때문에 반올림을 해서 저장을 하지만 이는 향후에 계산상의 오차를 발생하게 만든다. 부동소수점에 의한 오차는 언어, 사용목적에 따라 대처하는 방법이 다양하게 존재한다.