Participer au site avec un Tip
Rechercher
 

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 :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Macros de bornes de <float.h>

Les macros de précision Les macros liées aux subnormaux


Entête à inclure

#include <float.h>  // <cfloat> en C++

Macros de bornes

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.

MacroRô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.

Exemple de code

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;
}
Bornes des types flottants

Sujets connexes

Macros de précision
Macros liées aux subnormaux


Les macros de précision Les macros liées aux subnormaux




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé