Float는 '부동 소수점(floating-point)'을 줄인 용어입니다. 정의에 따르면, float는 컴파일러에 내장된 기본 데이터 타입으로, 소수점이 있는 숫자 값을 정의하는 데 사용됩니다. 부동 소수점 타입의 변수는 4320.0, -3.33, 0.01226과 같은 실수를 저장할 수 있는 변수입니다.
이름에서 '부동(floating)'이라는 부분은 소수점이 '떠다닐 수 있다'는 의미를 담고 있습니다. 즉, 소수점 앞뒤로 가변적인 자릿수를 지원할 수 있다는 뜻입니다.
부동 소수점 데이터 타입
| 분류 | 타입 | 최소 크기 | 일반적인 크기 |
|---|---|---|---|
| 부동 소수점 | float | 4바이트 | 4바이트 |
| double | 8바이트 | 8바이트 | |
| long double | 8바이트 | 8, 12 또는 16바이트 |
부동 소수점 범위 및 정밀도
| 크기 | 표현 범위 | 정밀도 |
|---|---|---|
| 4바이트 | ±1.18 x 10-38 ~ ±3.4 x 1038 | 유효숫자 6~9자리, 일반적으로 7자리 |
| 8바이트 | ±2.23 x 10-308 ~ ±1.80 x 10308 | 유효숫자 15~18자리, 일반적으로 16자리 |
| 80비트 (일반적으로 12 또는 16바이트 사용) | ±3.36 x 10-4932 ~ ±1.18 x 104932 | 유효숫자 18~21자리 |
| 16바이트 | ±3.36 x 10-4932 ~ ±1.18 x 104932 | 유효숫자 33~36자리 |
예제 문제
입력 − a=11.23, b=6.7
출력 − 75.241
설명 − 이 프로그램은 float 변수를 활용합니다. 사용자로부터 두 개의 부동 소수점 숫자(float 변수)를 입력받은 후, 두 수의 곱을 별도의 변수에 저장하고 그 결과를 화면에 출력합니다.
C 코드 구현
#include <stdio.h>
int main() {
float a, b, c;
a = 11.23; b = 6.7;
c = (float)(a * b);
// 결과를 소수점 이하 3자리까지 출력
printf("%3f", c);
return 0;
}실행 결과
75.241
위 코드에서 (float)(a * b)처럼 명시적 형 변환(casting)을 사용하면 곱셈 결과가 float 타입으로 확실하게 저장됩니다. printf 함수의 서식 지정자를 활용하면 원하는 자릿수만큼 결과를 깔끔하게 출력할 수 있습니다.