#include <float.h> // <cfloat> en C++
Un nombre subnormal est une valeur non nulle, plus petite que la plus petite valeur normalisée du type. Ces nombres permettent une transition plus progressive vers zéro, mais ils peuvent être plus coûteux à manipuler sur certaines architectures.
| Macro | Rôle |
|---|---|
FLT_HAS_SUBNORM (C11) |
Indique si float supporte les nombres subnormaux. Cette macro est obsolescente en C23. |
DBL_HAS_SUBNORM (C11) |
Indique si double supporte les nombres subnormaux. Cette macro est obsolescente en C23. |
LDBL_HAS_SUBNORM (C11) |
Indique si long double supporte les nombres subnormaux. Cette macro est obsolescente en C23. |
FLT_TRUE_MIN (C11) |
Plus petite valeur positive représentable par un float, subnormale comprise. |
DBL_TRUE_MIN (C11) |
Plus petite valeur positive représentable par un double, subnormale comprise. |
LDBL_TRUE_MIN (C11) |
Plus petite valeur positive représentable par un long double, subnormale comprise. |
-1 : présence indéterminable.0 : absence de nombres subnormaux.1 : présence de nombres subnormaux.Le programme suivant affiche la plus petite valeur positive réellement représentable pour deux types flottants.
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <float.h> #include <stdio.h> int main() { printf( "FLT_MIN == %.9e\n", FLT_MIN ); printf( "FLT_TRUE_MIN == %.9e\n", FLT_TRUE_MIN ); printf( "DBL_MIN == %.17e\n", DBL_MIN ); printf( "DBL_TRUE_MIN == %.17e\n", DBL_TRUE_MIN ); 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 :