c언어의 실수자료형은 3자이다.
float 4바이트 | 유효자릿수: 7
double 8바이트 | 유효자릿수: 16
long double 8바이트 | 유효자릿수: 16
float은 초기화하는 숫자 뒤에 f를 붙인다
float num1 = 3.14f;
형식 지정자는 '%f' 이다.
double은 초기화하는 숫자 뒤에 아무것도 안 붙인다.
double num2 = 3.44444;
형식 지정자는 '%f' 이다.
long double은 초기화 하는 숫자 뒤에 l을 붙인다.
long double num3 = 3.144444l;
형식 지정자는 '%Lf' 이다.
#include <stdio.h>
#incldue <float.h>
int main()
{
float num1 = FLT_MIN;
float num2 = FLT_MAX;
double num3 = DBL_MIN;
double num4 = DBL_MAX;
long double num5 = LDBL_MIN;
long double num6 = LDBL_MAX;
// double, long double은 최댓값이 너무 길어서
//형식 지정자 %e, %Le로 표시하는것이 좋음
}
실수 자료형에도 정수 자료형처럼 overflow, underflow가 있는데 똑같지는 않다.
기존에 오버플로우가 일어나면 최솟값에서 다시 시작하던 정수형과 달리 실수 자료형은 무한대(infinity)가 되므로 inf가 출력된다.
float의 양수 최댓값(FLT_MAX)에 1000.0을 곱하면 오버플로우가 발생한다.
float의 양수 최솟값(FLT_MIN)에 1000000000.0을 나누면 언더플로우가 발생한다.
우리가 짚어야할 요점은 자신이 표현할 데이터가 정수인지 실수인지 판단하여 구분할 수만 있다면 될 것이다.
c언어의 실수 자료형은 평소에 10진수로 실수를 저장할 수 있지만
"지수 표기법"으로 실수를 저장할 수 있다.
이건 어려우니 알아서 검색 하도록