C 표준 라이브러리 - <float.h>


소개

C 표준 라이브러리의 float.h 헤더 파일에는 부동 소수점 값과 관련된 플랫폼별 상수 집합이 포함되어 있습니다. 이러한 상수는 ANSI C에서 도입되었으며, 이로 인해 프로그램의 이식성이 향상되었습니다. 이러한 상수를 설명하기 전에 부동 소수점 숫자가 다음 네 가지 요소로 구성된다는 점을 명확히 하는 것이 가장 좋습니다.

지수의 밑수, 2는 2진수, 10은 10진수, 16은 16진수 등... e지수, 최소 emin과 최대 max. p정밀도, b진수의 유효 숫자
사이의 정수 e

위의 4개 구성 요소를 기반으로 부동 소수점 숫자의 값은 다음과 같습니다.

부동 소수점 = (S ) p x be

또는

부동 소수점 = (+/-) 정밀도 x 기본지수

라이브러리 매크로

다음 값은 구현에 따라 다르며 #define 지시문을 통해 정의됩니다. 이러한 값은 아래 제공된 값보다 낮을 수 없습니다. FLT의 모든 인스턴스는 float 유형, DBL은 double 유형, LDBL은 long double 유형을 참조합니다.

LDBL_MANT_DIGLDBL_DIG 10LDBL_MIN_EXPLDBL_MIN_10_EXP -37LDBL_MAX_EXPLDBL_MAX_10_EXP +37LDBL_MAX 1E+37LDBL_EPSILON 1E-9LDBL_MIN 1E-37
#include <stdio.h>#include <float.h>int main(){
   printf("The maximum value of float = %.10e\n", FLT_MAX);
   printf("The minimum value of float = %.10e\n", FLT_MIN);

   printf("The number of digits in the number = %.10e\n", FLT_MANT_DIG);}
위 프로그램을 컴파일하고 실행해 보면 다음과 같은 결과가 나옵니다:
The maximum value of float = 3.4028234664e+38The minimum value of float = 1.1754943508e-38The number of digits in the number = 7.2996655210e-312
매크로 설명
flt_rounds 부동 소수점 추가의 반올림 모드를 정의하면 다음 값 중 하나 일 수 있습니다. 0으로
  • 1 - 가장 가까운 값으로 이동
  • 2 - 양의 무한대로 이동
  • 3 - 음의 무한으로 이동
  • FLT_RADIX 2

  • 이 매크로 에 대한 기초를 정의합니다 지수 표현 개수. 2진수는 2진수, 10진수는 10진수, 16진수는 16진수를 나타냅니다.
FLT_MANT_DIGDBL_MANT_DIG

이 매크로는 FLT_RADIX 기준의 자릿수를 정의합니다.

FLT_DIG 6
DBL_DIG 10

이 매크로는 반올림으로 인해 표현이 변경되지 않는 십진수의 최대값(기본 10)을 정의합니다.

FLT_MIN_EXP
DBL_MIN_EXP

이 매크로는 밑이 FLT_RADIX일 때 지수의 최소 음의 정수 값을 정의합니다.

FLT_MIN_10_EXP -37
DBL_MIN_10_EXP -37

이 매크로는 10진법 지수의 최소 음수 값을 정의합니다.

FLT_MAX_EXP
DBL_MAX_EXP

이 매크로는 밑이 FLT_RADIX일 때 지수의 최대 정수 값을 정의합니다.

FLT_MAX_10_EXP +37
DBL_MAX_10_EXP +37

이 매크로는 밑수 10이 사용될 때 지수의 최대 정수 값을 정의합니다.

FLT_MAX 1E+37
DBL_MAX 1E+37

이 매크로는 가장 큰 유한 부동 소수점 값을 정의합니다.

FLT_EPSILON 1E-5
DBL_EPSILON 1E-9

이 매크로는 표현할 수 있는 가장 작은 유효 숫자를 정의합니다.

FLT_MIN 1E-37
DBL_MIN 1E-37

이 매크로는 최소 부동 소수점 값을 정의합니다.

Example
다음 예에서는 float.h 파일에 정의된 일부 상수의 사용을 보여줍니다.