Constantes de Types Numériques

Chaque type numérique simple est prévu pour un certain type de tâche et permet d'optimiser l'exécution d'un programme mql5. Pour une meilleure lisibilité du code et un traitement correct des résultats de calcul, des constantes existent permettant de récupérer les informations sur les restrictions sur un certain type de données simples.

Constante

Description

Valeur

CHAR_MIN

Valeur minimale du type char

-128

CHAR_MAX

Valeur maximale du type char

127

UCHAR_MAX

Valeur maximale du type uchar

255

SHORT_MIN

Valeur minimale du type short

-32768

SHORT_MAX

Valeur maximale du type short

32767

USHORT_MAX

Valeur maximale du type ushort

65535

INT_MIN

Valeur minimale du type int

-2147483648

INT_MAX

Valeur maximale du type int

2147483647

UINT_MAX

Valeur maximale du type uint

4294967295

LONG_MIN

Valeur minimale du type long

-9223372036854775808

LONG_MAX

Valeur maximale du type long

9223372036854775807

ULONG_MAX

Valeur maximale du type ulong

18446744073709551615

DBL_MIN

Valeur minimale positive du type double

2.2250738585072014e-308

DBL_MAX

Valeur maximale du type double

1.7976931348623158e+308

DBL_EPSILON

Valeur minimale qui satisfait la condition :

1.0+DBL_EPSILON != 1.0 (pour le type double)

2.2204460492503131e-016

DBL_DIG

Nombre significatif de décimales pour le type double

15

DBL_MANT_DIG

Nombre de bits dans la mantisse pour le type double

53

DBL_MAX_10_EXP

Valeur décimale maximale du degré d'exposant pour le type double

308

DBL_MAX_EXP

Valeur binaire maximale du degré d'exposant pour le type double

1024

DBL_MIN_10_EXP

Valeur décimale minimale du degré d'exposant pour le type double

(-307)

DBL_MIN_EXP

Valeur binaire minimale du degré d'exposant pour le type double

(-1021)

FLT_MIN

Valeur minimale positive du type float

1.175494351e-38

FLT_MAX

Valeur maximale du type float

3.402823466e+38

FLT_EPSILON

Valeur minimale qui satisfait la condition :

1.0+DBL_EPSILON != 1.0 (pour le type float)

1.192092896e—07

FLT_DIG

Nombre significatif de décimales pour le type float

6

FLT_MANT_DIG

Nombre de bits dans la mantisse pour le type float

24

FLT_MAX_10_EXP

Valeur décimale maximale du degré d'exposant pour le type float

38

FLT_MAX_EXP

Valeur binaire maximale du degré d'exposant pour le type float

128

FLT_MIN_10_EXP

Valeur décimale minimale du degré d'exposant pour le type float

-37

FLT_MIN_EXP

Valeur binaire minimale du degré d'exposant pour le type float

(-125)

Exemple :

void OnStart()
  {
//--- affiche les valeurs des constantes
   printf("CHAR_MIN = %d",CHAR_MIN);
   printf("CHAR_MAX = %d",CHAR_MAX);
   printf("UCHAR_MAX = %d",UCHAR_MAX);
   printf("SHORT_MIN = %d",SHORT_MIN);
   printf("SHORT_MAX = %d",SHORT_MAX);
   printf("USHORT_MAX = %d",USHORT_MAX);
   printf("INT_MIN = %d",INT_MIN);
   printf("INT_MAX = %d",INT_MAX);
   printf("UINT_MAX = %u",UINT_MAX);
   printf("LONG_MIN = %I64d",LONG_MIN);
   printf("LONG_MAX = %I64d",LONG_MAX);
   printf("ULONG_MAX = %I64u",ULONG_MAX);
   printf("EMPTY_VALUE = %.16e",EMPTY_VALUE);
   printf("DBL_MIN = %.16e",DBL_MIN);
   printf("DBL_MAX = %.16e",DBL_MAX);
   printf("DBL_EPSILON = %.16e",DBL_EPSILON);
   printf("DBL_DIG = %d",DBL_DIG);
   printf("DBL_MANT_DIG = %d",DBL_MANT_DIG);
   printf("DBL_MAX_10_EXP =  %d",DBL_MAX_10_EXP);
   printf("DBL_MAX_EXP = %d",DBL_MAX_EXP);
   printf("DBL_MIN_10_EXP = %d",DBL_MIN_10_EXP);
   printf("DBL_MIN_EXP = %d",DBL_MIN_EXP);
   printf("FLT_MIN = %.8e",FLT_MIN);
   printf("FLT_MAX = %.8e",FLT_MAX);
   printf("FLT_EPSILON = %.8e",FLT_EPSILON);
/*
   CHAR_MIN = -128
   CHAR_MAX = 127
   UCHAR_MAX = 255
   SHORT_MIN = -32768
   SHORT_MAX = 32767
   USHORT_MAX = 65535
   INT_MIN = -2147483648
   INT_MAX = 2147483647
   UINT_MAX = 4294967295
   LONG_MIN = -9223372036854775808
   LONG_MAX = 9223372036854775807
   ULONG_MAX = 18446744073709551615
   EMPTY_VALUE = 1.7976931348623157e+308
   DBL_MIN = 2.2250738585072014e-308
   DBL_MAX = 1.7976931348623157e+308
   DBL_EPSILON = 2.2204460492503131e-16
   DBL_DIG = 15
   DBL_MANT_DIG = 53
   DBL_MAX_10_EXP =  308
   DBL_MAX_EXP = 1024
   DBL_MIN_10_EXP = -307
   DBL_MIN_EXP = -1021
   FLT_MIN = 1.17549435e-38
   FLT_MAX = 3.40282347e+38
   FLT_EPSILON = 1.19209290e-07
*/ 
  }