#include <float.h> // <cfloat> en C++
Les macros de bornes permettent de connaître les plus petites et plus grandes valeurs normalisées, les exposants
disponibles et l'écart minimal autour de 1. Elles sont essentielles quand un calcul risque le dépassement
de capacité ou l'absorption d'une petite variation.
| Macro | Rôle |
|---|---|
FLT_MIN_EXP |
Plus petit exposant binaire normalisé pour float. |
DBL_MIN_EXP |
Plus petit exposant binaire normalisé pour double. |
LDBL_MIN_EXP |
Plus petit exposant binaire normalisé pour long double. |
FLT_MIN_10_EXP |
Plus petit exposant décimal normalisé pour float. |
DBL_MIN_10_EXP |
Plus petit exposant décimal normalisé pour double. |
LDBL_MIN_10_EXP |
Plus petit exposant décimal normalisé pour long double. |
FLT_MAX_EXP |
Plus grand exposant en base FLT_RADIX pour float. |
DBL_MAX_EXP |
Plus grand exposant en base FLT_RADIX pour double. |
LDBL_MAX_EXP |
Plus grand exposant en base FLT_RADIX pour long double. |
FLT_MAX_10_EXP |
Plus grand exposant décimal pour float. |
DBL_MAX_10_EXP |
Plus grand exposant décimal pour double. |
LDBL_MAX_10_EXP |
Plus grand exposant décimal pour long double. |
FLT_MAX |
Plus grande valeur finie représentable par un float. |
DBL_MAX |
Plus grande valeur finie représentable par un double. |
LDBL_MAX |
Plus grande valeur finie représentable par un long double. |
FLT_NORM_MAX (C23) |
Plus grande valeur normalisée représentable par un float. |
DBL_NORM_MAX (C23) |
Plus grande valeur normalisée représentable par un double. |
LDBL_NORM_MAX (C23) |
Plus grande valeur normalisée représentable par un long double. |
FLT_MIN |
Plus petite valeur positive normalisée représentable par un float. |
DBL_MIN |
Plus petite valeur positive normalisée représentable par un double. |
LDBL_MIN |
Plus petite valeur positive normalisée représentable par un long double. |
FLT_EPSILON |
Ecart entre 1 et la plus petite valeur normalisée strictement supérieure à 1 pour float. |
DBL_EPSILON |
Ecart entre 1 et la plus petite valeur normalisée strictement supérieure à 1 pour double. |
LDBL_EPSILON |
Ecart entre 1 et la plus petite valeur normalisée strictement supérieure à 1 pour long double. |
Le programme suivant affiche quelques bornes représentatives des types float et double.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <float.h> #include <stdio.h> int main() { printf( "FLT_MIN == %.9e\n", FLT_MIN ); printf( "FLT_MAX == %.9e\n", FLT_MAX ); printf( "FLT_EPSILON == %.9e\n", FLT_EPSILON ); printf( "DBL_MIN == %.17e\n", DBL_MIN ); printf( "DBL_MAX == %.17e\n", DBL_MAX ); printf( "DBL_EPSILON == %.17e\n", DBL_EPSILON ); return 0; } |
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :