C 표준 라이브러리 - <float.h>
소개
C 표준 라이브러리의 float.h 헤더 파일에는 부동 소수점 값과 관련된 플랫폼별 상수 집합이 포함되어 있습니다. 이러한 상수는 ANSI C에서 도입되었으며, 이로 인해 프로그램의 이식성이 향상되었습니다. 이러한 상수를 설명하기 전에 부동 소수점 숫자가 다음 네 가지 요소로 구성된다는 점을 명확히 하는 것이 가장 좋습니다.
지수의 밑수, 2는 2진수, 10은 10진수, 16은 16진수 등... | e | 지수, 최소
emin | 과 최대 사이의 정수 e | max
. | | p
정밀도, b진수의 유효 숫자 | 위의 4개 구성 요소를 기반으로 부동 소수점 숫자의 값은 다음과 같습니다. 부동 소수점 = (S ) p x be 또는 부동 소수점 = (+/-) 정밀도 x 기본지수 라이브러리 매크로다음 값은 구현에 따라 다르며 #define 지시문을 통해 정의됩니다. 이러한 값은 아래 제공된 값보다 낮을 수 없습니다. FLT의 모든 인스턴스는 float 유형, DBL은 double 유형, LDBL은 long double 유형을 참조합니다. 매크로 | 설명 |
---|
flt_rounds | 부동 소수점 추가의 반올림 모드를 정의하면 다음 값 중 하나 일 수 있습니다. 0으로 - 1 - 가장 가까운 값으로 이동
- 2 - 양의 무한대로 이동
- 3 - 음의 무한으로 이동
FLT_RADIX 2 이 매크로 에 대한 기초를 정의합니다 지수 표현 개수. 2진수는 2진수, 10진수는 10진수, 16진수는 16진수를 나타냅니다.
| FLT_MANT_DIG | DBL_MANT_DIG | LDBL_MANT_DIG이 매크로는 FLT_RADIX 기준의 자릿수를 정의합니다. FLT_DIG 6 | DBL_DIG 10 | LDBL_DIG 10이 매크로는 반올림으로 인해 표현이 변경되지 않는 십진수의 최대값(기본 10)을 정의합니다. FLT_MIN_EXP | DBL_MIN_EXP | LDBL_MIN_EXP이 매크로는 밑이 FLT_RADIX일 때 지수의 최소 음의 정수 값을 정의합니다. FLT_MIN_10_EXP -37 | DBL_MIN_10_EXP -37 | LDBL_MIN_10_EXP -37이 매크로는 10진법 지수의 최소 음수 값을 정의합니다. FLT_MAX_EXP | DBL_MAX_EXP | LDBL_MAX_EXP이 매크로는 밑이 FLT_RADIX일 때 지수의 최대 정수 값을 정의합니다. FLT_MAX_10_EXP +37 | DBL_MAX_10_EXP +37 | LDBL_MAX_10_EXP +37이 매크로는 밑수 10이 사용될 때 지수의 최대 정수 값을 정의합니다. FLT_MAX 1E+37 | DBL_MAX 1E+37 | LDBL_MAX 1E+37이 매크로는 가장 큰 유한 부동 소수점 값을 정의합니다. FLT_EPSILON 1E-5 | DBL_EPSILON 1E-9 | LDBL_EPSILON 1E-9이 매크로는 표현할 수 있는 가장 작은 유효 숫자를 정의합니다. FLT_MIN 1E-37 | DBL_MIN 1E-37 | LDBL_MIN 1E-37이 매크로는 최소 부동 소수점 값을 정의합니다. Example | 다음 예에서는 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+38The minimum value of float = 1.1754943508e-38The number of digits in the number = 7.2996655210e-312
|