← 질문 목록
#173깊이 0
고정 소수점과 부동 소수점은 무엇으로 구분하는가?
언어 · 런타임기초
소수점의 위치를 고정하느냐, 혹은 데이터의 값에 따라 유동적으로 옮기느냐의 차이다.
| 기준 | 고정 소수점 | 부동 소수점 |
|---|---|---|
| 소수점 위치 | 정해진 위치 | 값에 따라 변함 |
| 표현 범위 | 좁음 | 매우 넓음 |
| 연산 속도 | 하드웨어와 연산 종류에 달렸다 | 하드웨어와 연산 종류에 달렸다 |
고정 소수점은 정수부와 소수부의 비트 수를 미리 정해둔다. 고정 소수점은 정수 연산으로 처리할 수 있지만 같은 비트 수에서 표현 범위가 좁다.
부동 소수점은 가수부와 지수부를 나누어 소수점의 위치를 조정한다. 부동 소수점은 지수부를 써서 같은 비트 수로 넓은 범위를 표현한다.
다만 10진 소수 가운데 2진수로 딱 떨어지지 않는 것이 있다. 0.5는 정확하지만 0.1은 아니다. 그 자리에서 반올림 오차가 생긴다. 금융 계산처럼 오차를 허용하기 어려운 곳에서는 고정 소수점이나 임의 정밀도 타입을 쓴다.