8.3 최솟값과 최댓값 표현하기
이번에는 실수 자료형의 양수 최솟값과 최댓값을 표현하는 방법을 알아보겠습니다(Visual Studio, Windows).
real_number_min_max.c
#include <stdio.h> #include <float.h> // 실수 자료형의 양수 최솟값, 최댓값이 정의된 헤더 파일 int main() { float num1 = FLT_MIN; // float의 양수 최솟값 float num2 = FLT_MAX; // float의 양수 최댓값 double num3 = DBL_MIN; // dobule의 양수 최솟값 double num4 = DBL_MAX; // double의 양수 최댓값 long double num5 = LDBL_MIN; // long double의 양수 최솟값 long double num6 = LDBL_MAX; // long double의 양수 최댓값 printf("%.40f %.2f\n", num1, num2); // 0.0000000000000000000000000000000000000118 // 340282346638528859811704183484516925440.00 printf("%e %e\n", num3, num4); // 2.225074e-308 1.797693e+308 printf("%Le %Le\n", num5, num6); // 2.225074e-308 1.797693e+308 return 0; }
실행 결과
0.0000000000000000000000000000000000000118 340282346638528859811704183484516925440.00 2.225074e-308 1.797693e+308 2.225074e-308 1.797693e+308
float.h 헤더 파일에 각 자료형 별로 양수 최솟값과 최댓값이 정의되어 있습니다. printf 함수에서 서식 지정자를 %.40f, %.2f처럼 소수점 뒤에 숫자를 지정하면 해당 숫자 만큼 소수점 이하 자릿수를 출력합니다
double, long double 최소, 최댓값들은 소수점 이하 자리가 매우 길기 때문에 printf 함수에서 서식 지정자로 %e, %Le를 사용하여 지수 표기법으로 출력해보았습니다. 참고로 리눅스에서 LDBL_MIN, LDBL_MAX 값은 3.362103e-4932, 1.189731e+4932입니다.