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é

Valeurs spéciales de <float.h>

Les macros liées aux subnormaux Les flottants décimaux


Entête à inclure

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

Valeurs spéciales

C23 rapproche davantage <float.h> du modèle ISO/IEC 60559 en exposant des macros permettant de tester la compatibilité des formats et de produire certaines valeurs spéciales. Les macros INFINITY et NAN existent aussi dans <math.h>. Leur utilisation via <float.h> est considérée comme obsolescente : pour du nouveau code, préférez <math.h>.

MacroRôle
FLT_IS_IEC_60559 (C23) Indique si float a la précision et l'étendue d'un format ISO/IEC 60559.
DBL_IS_IEC_60559 (C23) Indique si double a la précision et l'étendue d'un format ISO/IEC 60559.
LDBL_IS_IEC_60559 (C23) Indique si long double a la précision et l'étendue d'un format ISO/IEC 60559.
FLT_SNAN (C23) NaN signalant de type float, si ce type en supporte.
DBL_SNAN (C23) NaN signalant de type double, si ce type en supporte.
LDBL_SNAN (C23) NaN signalant de type long double, si ce type en supporte.
INFINITY (C23) Infini positif de type float, si l'implémentation le supporte. Préférez son inclusion via <math.h>.
NAN (C23) NaN silencieux de type float, si l'implémentation le supporte. Préférez son inclusion via <math.h>.

Exemple de code

Le programme suivant utilise les macros de compatibilité ISO/IEC 60559 quand elles sont disponibles.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
#include <float.h>
#include <stdio.h>

int main() {

#ifdef FLT_IS_IEC_60559
    printf( "FLT_IS_IEC_60559  == %d\n", FLT_IS_IEC_60559 );
#endif

#ifdef DBL_IS_IEC_60559
    printf( "DBL_IS_IEC_60559  == %d\n", DBL_IS_IEC_60559 );
#endif

#ifdef INFINITY
    printf( "INFINITY          == %f\n", INFINITY );
#endif

    return 0;
}
Compatibilité ISO/IEC 60559

Sujets connexes

Flottants décimaux
INFINITY
NAN


Les macros liées aux subnormaux Les flottants décimaux




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