C 언어 실수형 변수란 C 프로그래밍 언어에서 소수점을 포함한 실수(floating-point number)를 저장하고 처리하기 위해 사용되는 변수를 말한다. C 언어에서 실수형 변수는 부동소수점(Floating-Point) 방식으로 데이터를 저장하며, 이는 국제 표준 IEEE 754 규격을 따른다.
주요 실수형 자료형
C 언어에서 제공하는 기본 실수형 자료형은 다음과 같다.
float (단정밀도 부동소수점)
- 크기: 4바이트(32비트)
- 구성: 부호 1비트, 지수 8비트, 가수 23비트
- 값의 범위: 약 1.175494e-38 ~ 3.402823e+38
- 유효자릿수: 약 7자리
- 선언 시 숫자 뒤에 f 또는 F를 붙인다 (예:
3.141592f)
double (배정밀도 부동소수점)
- 크기: 8바이트(64비트)
- 구성: 부호 1비트, 지수 11비트, 가수 52비트
- 값의 범위: 약 2.225074e-308 ~ 1.797693e+308
- 유효자릿수: 약 16자리
- 숫자 뒤에 별도의 접미사를 붙이지 않는다 (예:
3.141592653589793)
long double (확장 정밀도 부동소수점)
- 크기: 운영체제 및 플랫폼에 따라 다름 (Windows 8바이트, Linux 12~16바이트, OS X 16바이트)
- 값의 범위: 플랫폼 의존적
- 선언 시 숫자 뒤에 l 또는 L을 붙인다 (예:
9.327513l)
변수 선언 및 초기화 예시
float num1 = 0.1f;
double num2 = 3867.215820;
long double num3 = 9.327513l;
지수 표기법
매우 크거나 작은 값을 표현할 때 지수 표기법을 사용할 수 있다.
float num1 = 3.e5f; // 300000.0
double num2 = -1.3827e-2; // -0.013827
long double num3 = 5.21e+9l; // 5210000000.0
실수형 변수의 특징
부동소수점 방식
C 언어의 실수형 변수는 IEEE 754 표준에 따라 부호(sign), 지수(exponent), 가수(significand) 의 세 부분으로 실수를 2진수로 표현한다. 이 방식은 고정 소수점 방식과 달리 매우 넓은 범위의 값을 표현할 수 있으나, 일부 소수점 값을 정확히 표현하지 못하는 반올림 오차가 발생할 수 있다.
출력 서식 지정자
float,double:%f(일반),%e(지수 표기법)long double:%Lf(일반),%Le(지수 표기법)
연산 처리 방식
CPU는 정수형 ALU와 별도로 FPU(Floating-Point Unit) 를 통해 실수 연산을 처리한다. 고성능 CPU일수록 FPU가 내장되어 있으며, FPU가 없는 저사양 CPU(예: 8비트 CPU)에서는 소프트웨어 함수를 통해 실수 연산이 처리된다. 컴파일러에 따라 FPU가 존재하는 CPU에서도 정수형 계산 함수를 사용하도록 옵션을 설정할 수 있다.
활용 분야
실수형 변수는 과학 계산, 공학 시뮬레이션, 3D 그래픽스(좌표 계산, 행렬 연산, 아핀 변환), 금융 계산 등 정밀한 수치 처리가 필요한 분야에서 널리 사용된다. 특히 3D 게임 엔진에서는 float가 3차원 좌표 표현에 주로 사용된다.