C-Bibliothek - <float.h>
Das float.hDie Header-Datei der C-Standardbibliothek enthält eine Reihe verschiedener plattformabhängiger Konstanten, die sich auf Gleitkommawerte beziehen. Diese Konstanten werden von ANSI C vorgeschlagen. Sie ermöglichen die Erstellung portablerer Programme. Bevor Sie alle Konstanten überprüfen, sollten Sie verstehen, dass die Gleitkommazahl aus den folgenden vier Elementen besteht:
Sr.Nr. | Komponente & Komponentenbeschreibung |
---|---|
1 | S Zeichen (+/-) |
2 | b Basis oder Radix der Exponentendarstellung, 2 für Binär, 10 für Dezimal, 16 für Hexadezimal und so weiter ... |
3 | e Exponent, eine ganze Zahl zwischen einem Minimum emin und ein Maximum emax. |
4 | p Genauigkeit, die Anzahl der Basis-b-Ziffern im Signifikanten. |
Basierend auf den obigen 4 Komponenten hat ein Gleitkomma seinen Wert wie folgt:
floating-point = ( S ) p x be
or
floating-point = (+/-) precision x baseexponent
Bibliotheksmakros
Die folgenden Werte sind implementierungsspezifisch und werden mit der Direktive #define definiert. Diese Werte dürfen jedoch nicht niedriger sein als hier angegeben. Beachten Sie, dass sich FLT in allen Fällen auf den Typ beziehtfloat, DBL bezieht sich auf doubleund LDBL bezieht sich auf long double.
Sr.Nr. | Makro & Beschreibung |
---|---|
1 | FLT_ROUNDS Definiert den Rundungsmodus für die Gleitkommaaddition und kann einen der folgenden Werte annehmen:
|
2 | FLT_RADIX 2 Dies definiert die Basisradixdarstellung des Exponenten. Eine Basis-2 ist binär, Basis-10 ist die normale Dezimaldarstellung, Basis-16 ist Hex. |
3 | FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG Diese Makros definieren die Anzahl der Stellen in der Nummer (in der FLT_RADIX-Basis). |
4 | FLT_DIG 6 DBL_DIG 10 LDBL_DIG 10 Diese Makros definieren die maximale Anzahl von Dezimalstellen (Basis-10), die nach dem Runden unverändert dargestellt werden können. |
5 | FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP Diese Makros definieren den minimalen negativen Ganzzahlwert für einen Exponenten in der Basis FLT_RADIX. |
6 | FLT_MIN_10_EXP -37 DBL_MIN_10_EXP -37 LDBL_MIN_10_EXP -37 Diese Makros definieren den minimalen negativen ganzzahligen Wert für einen Exponenten in Basis 10. |
7 | FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP Diese Makros definieren den maximalen ganzzahligen Wert für einen Exponenten in der Basis FLT_RADIX. |
8 | FLT_MAX_10_EXP +37 DBL_MAX_10_EXP +37 LDBL_MAX_10_EXP +37 Diese Makros definieren den maximalen ganzzahligen Wert für einen Exponenten in Basis 10. |
9 | FLT_MAX 1E+37 DBL_MAX 1E+37 LDBL_MAX 1E+37 Diese Makros definieren den maximalen endlichen Gleitkommawert. |
10 | FLT_EPSILON 1E-5 DBL_EPSILON 1E-9 LDBL_EPSILON 1E-9 Diese Makros definieren die niedrigstwertige darstellbare Ziffer. |
11 | FLT_MIN 1E-37 DBL_MIN 1E-37 LDBL_MIN 1E-37 Diese Makros definieren die minimalen Gleitkommawerte. |
Beispiel
Das folgende Beispiel zeigt die Verwendung einiger der in der Datei float.h definierten Konstanten.
#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);
}
Lassen Sie uns das obige Programm kompilieren und ausführen, das das folgende Ergebnis liefert:
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