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é

Flottants décimaux de float.h (C23)

Les valeurs spéciales


Entête à inclure

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

Flottants décimaux ISO/IEC 60559

Les types _Decimal32, _Decimal64 et _Decimal128 sont optionnels. Une implémentation ne fournit les macros suivantes que si elle définit __STDC_IEC_60559_DFP__. Ils sont utiles pour certains calculs financiers ou réglementaires où une base décimale évite des surprises liées aux approximations binaires.

En C23, l'utilisation de DEC_INFINITY et DEC_NAN via <float.h> est obsolescente. Pour ces deux macros, le standard recommande de passer par <math.h>.
MacroRôle
DEC_EVAL_METHOD (C23) Méthode d'évaluation des expressions de types flottants décimaux.
DEC_INFINITY (C23) Infini positif de type _Decimal32.
DEC_NAN (C23) NaN silencieux de type _Decimal32.
DEC32_MANT_DIG (C23) Nombre de chiffres du coefficient pour _Decimal32.
DEC64_MANT_DIG (C23) Nombre de chiffres du coefficient pour _Decimal64.
DEC128_MANT_DIG (C23) Nombre de chiffres du coefficient pour _Decimal128.
DEC32_MIN_EXP (C23) Exposant minimal pour _Decimal32.
DEC64_MIN_EXP (C23) Exposant minimal pour _Decimal64.
DEC128_MIN_EXP (C23) Exposant minimal pour _Decimal128.
DEC32_MAX_EXP (C23) Exposant maximal pour _Decimal32.
DEC64_MAX_EXP (C23) Exposant maximal pour _Decimal64.
DEC128_MAX_EXP (C23) Exposant maximal pour _Decimal128.
DEC32_MAX (C23) Plus grande valeur finie de _Decimal32.
DEC64_MAX (C23) Plus grande valeur finie de _Decimal64.
DEC128_MAX (C23) Plus grande valeur finie de _Decimal128.
DEC32_EPSILON (C23) Ecart autour de 1 pour _Decimal32.
DEC64_EPSILON (C23) Ecart autour de 1 pour _Decimal64.
DEC128_EPSILON (C23) Ecart autour de 1 pour _Decimal128.
DEC32_MIN (C23) Plus petite valeur positive normalisée de _Decimal32.
DEC64_MIN (C23) Plus petite valeur positive normalisée de _Decimal64.
DEC128_MIN (C23) Plus petite valeur positive normalisée de _Decimal128.
DEC32_TRUE_MIN (C23) Plus petite valeur positive de _Decimal32, subnormale comprise.
DEC64_TRUE_MIN (C23) Plus petite valeur positive de _Decimal64, subnormale comprise.
DEC128_TRUE_MIN (C23) Plus petite valeur positive de _Decimal128, subnormale comprise.
DEC32_SNAN (C23) NaN signalant de type _Decimal32.
DEC64_SNAN (C23) NaN signalant de type _Decimal64.
DEC128_SNAN (C23) NaN signalant de type _Decimal128.

Exemple de code

Le programme suivant montre la forme d'un test portable avant d'utiliser les macros décimales.

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

int main() {

#ifdef __STDC_IEC_60559_DFP__
    printf( "DEC32_MANT_DIG == %d\n", DEC32_MANT_DIG );
    printf( "DEC64_MANT_DIG == %d\n", DEC64_MANT_DIG );
#else
    puts( "Les flottants decimaux ne sont pas disponibles." );
#endif

    return 0;
}
Tester les flottants décimaux

Sujets connexes

fenv.h / cfenv
Valeurs spéciales


Les valeurs spéciales




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