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

그만큼 float.hC 표준 라이브러리의 헤더 파일에는 부동 소수점 값과 관련된 다양한 플랫폼 종속 상수 세트가 포함되어 있습니다. 이러한 상수는 ANSI C에서 제안합니다.이 상수를 사용하면보다 이식 가능한 프로그램을 만들 수 있습니다. 모든 상수를 확인하기 전에 부동 소수점 숫자가 다음 네 가지 요소로 구성되어 있음을 이해하는 것이 좋습니다.

Sr. 아니. 구성 요소 및 구성 요소 설명
1

S

기호 (+/-)

2

b

지수 표현의 기수 또는 기수, 2 진수 2, 10 진수 10, 16 진수 16 등 ...

e

지수, 최소값 사이의 정수 emin 그리고 최대 emax.

4

p

정밀도, 유효 숫자의 기본 b 자릿수.

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

floating-point = ( S ) p x be

or

floating-point = (+/-) precision x baseexponent

라이브러리 매크로

다음 값은 구현별로 다르며 #define 지시문으로 정의되지만 이러한 값은 여기에 제공된 값보다 낮지 않을 수 있습니다. 모든 경우에 FLT는float, DBL은 double, LDBL은 long double.

Sr. 아니. 매크로 및 설명
1

FLT_ROUNDS

부동 소수점 추가를위한 반올림 모드를 정의하며 다음 값 중 하나를 가질 수 있습니다.

  • -1 − 결정할 수 없음
  • 0-0쪽으로
  • 1 − 가장 가까운
  • 2 − 양의 무한대로
  • 3 − 음의 무한대로
2

FLT_RADIX 2

이것은 지수의 기본 기수 표현을 정의합니다. 2 진법은 2 진, 10 진법은 일반 십진 표현, 16 진법은 16 진법입니다.

FLT_MANT_DIG

DBL_MANT_DIG

LDBL_MANT_DIG

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

4

FLT_DIG 6

DBL_DIG 10

LDBL_DIG 10

이 매크로는 반올림 후 변경하지 않고 표현할 수있는 최대 십진수 (밑수 -10)를 정의합니다.

5

FLT_MIN_EXP

DBL_MIN_EXP

LDBL_MIN_EXP

이러한 매크로는 기본 FLT_RADIX의 지수에 대한 최소 음의 정수 값을 정의합니다.

6

FLT_MIN_10_EXP -37

DBL_MIN_10_EXP -37

LDBL_MIN_10_EXP -37

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

7

FLT_MAX_EXP

DBL_MAX_EXP

LDBL_MAX_EXP

이러한 매크로는 기본 FLT_RADIX의 지수에 대한 최대 정수 값을 정의합니다.

8

FLT_MAX_10_EXP +37

DBL_MAX_10_EXP +37

LDBL_MAX_10_EXP +37

이러한 매크로는 10 진법의 지수에 대한 최대 정수 값을 정의합니다.

9

FLT_MAX 1E+37

DBL_MAX 1E+37

LDBL_MAX 1E+37

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

10

FLT_EPSILON 1E-5

DBL_EPSILON 1E-9

LDBL_EPSILON 1E-9

이러한 매크로는 표현 가능한 최하위 숫자를 정의합니다.

11

FLT_MIN 1E-37

DBL_MIN 1E-37

LDBL_MIN 1E-37

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

다음 예제는 float.h 파일에 정의 된 몇 가지 상수의 사용법을 보여줍니다.

#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+38
The minimum value of float = 1.1754943508e-38
The number of digits in the number = 7.2996655210e-312