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입니다.