C-Programmierung: float.h
Erscheinungsbild
Der Standard definiert eine Gleitkommazahl nach dem folgenden Modell (in Klammern die symbolischen Konstanten für den Typ float):
- s = Vorzeichen
- b = Basis (
FLT_RADIX
) - e = Exponent (Wert zwischen
FLT_MIN
undFLT_MAX
) - p = Genauigkeit (
FLT_MANT_DIG
) - fk = nichtnegative Ganzzahl kleiner b
Der Standard weist darauf hin, dass hierbei nur um ein Beschreibung der Implementierung von Fließkommazahlen handelt und sich von der tatsächlichen Implementierung unterscheidet.
Mit float.h stehen folgende Gleitkommatypen zur Verfügung:
- float
- double
- long double
Für alle Gleitkommatypen definierte symbolische Konstanten:
FLT_RADIX
(2) BasisFLT_ROUND
Erhält die Art der Rundung einer Implementierung:- -1 unbestimmt
- 0 in Richtung 0
- 1 zum nächsten Wert
- 2 in Richtung plus unendlich
- 3 in Richtung minus unendlich
Die symbolische Konstante FLT_ROUND
kann auch andere Werte annehmen, wenn die Implementierung ein anderes Rundungsverfahren benutzt.
Für den Typ Float sind definiert:
FLT_MANT_DIG
Anzahl der Ziffern in der MantisseFLT_DIG
(6) Genauigkeit in DezimalziffernFLT_EPSILON
(1E-5) kleinste Zahl x für die gilt 1.0 + x ≠ 1.0FLT_MAX
(1E+37) größte Zahl, die der Typ float darstellen kannFLT_MIN
(1E-37) kleinste Zahl größer als 0, die der Typ float noch darstellen kannFLT_MAX_EXP
Minimale Größe des ExponentFLT_MIN_EXP
Maximale Größe des Exponent
Für den Typ Double sind definiert:
DBL_MANT_DIG
Anzahl der Ziffern in der MatisseDBL_DIG
(10) Genauigkeit in DezimalziffernDBL_EPSILON
(1E-9) kleinste Zahl x für die gilt 1.0 + x ≠ 1.0DBL_MAX
(1E+37) größte Zahl, die der Typ double darstellen kannDBL_MIN
(1E-37) kleinste Zahl größer als 0, die der Typ double noch darstellen kannDBL_MAX_EXP
Minimale Größe des ExponentDBL_MIN_EXP
Maximale Größe des Exponent
Für den Typ Long Double sind definiert:
LDBL_MANT_DIG
Anzahl der Ziffern in der MatisseLDBL_DIG
(10) Genauigkeit in DezimalziffernLDBL_EPSILON
(1E-9) kleinste Zahl x für die gilt 1.0 + x ≠ 1.0LDBL_MAX
(1E+37) größte Zahl, die der Typ long double darstellen kannLDBL_MIN
(1E-37) kleinste Zahl größer als 0, die der Typ long double noch darstellen kannLDBL_MAX_EXP
Minimale Größe des ExponentLDBL_MIN_EXP
Maximale Größe des Exponent