|

float


Description :

Type de données pour les nombres à virgule flottante : nombre comportant une virgule décimale. Les nombres à virgule flottante sont souvent utilisés pour approximer des valeurs analogiques et continues, car leur résolution est supérieure à celle des entiers. Leurs valeurs peuvent atteindre 3,4028235E+38 et descendre jusqu’à -3,4028235E+38. Ils sont stockés sous forme de 32 bits (4 octets).

Syntaxe :

float var = val;

Paramètres :

  • var : nom de la variable
  • val : la valeur à attribuer à cette variable

Exemple de code :

float myfloat;
    float sensorCalbrate = 1.117;

    int x;
    int y;
    float z;

    x = 1;
    y = x / 2;          // y contient désormais 0, les entiers ne peuvent pas contenir de fractions
    z = (float)x / 2.0; // z contient désormais .5 (vous devez utiliser 2.0, pas 2)

Remarques et avertissements :

Si vous utilisez des nombres à virgule flottante, vous devez ajouter une virgule décimale, sinon la valeur sera considérée comme un entier. Consultez la page Constantes à virgule flottante pour plus de détails.

Le type de données float n’a qu’une précision de 6 à 7 chiffres après la virgule. Il s’agit du nombre total de chiffres, et non du nombre à droite de la virgule. Contrairement à d’autres plateformes, où l’utilisation d’un double permet d’obtenir une plus grande précision (par exemple, jusqu’à 15 chiffres), sur la carte Arduino, un double a la même taille qu’un nombre à virgule flottante.

Les nombres à virgule flottante ne sont pas exacts et peuvent donner des résultats étranges lorsqu’ils sont comparés. Par exemple, 9,0 / 0,3 peut ne pas être égal à 30,0. Il est préférable de vérifier que la valeur absolue de la différence entre les nombres est inférieure à un petit nombre.

La conversion d’un nombre à virgule flottante en nombre entier entraîne une troncature :

float x = 2.9; // A variable de type flottant
    int y = x;  // 2

Si, au contraire, vous souhaitez arrondir pendant le processus de conversion, vous devez ajouter 0,5 :

float x = 2.9;
    int y = x + 0.5;  // 3

ou utilisez la fonction round() :

float x = 2.9;
    int y = round(x);  // 3

Les calculs en virgule flottante sont également beaucoup plus lents que les calculs en nombres entiers ; il est donc conseillé de les éviter si, par exemple, une boucle doit s’exécuter à pleine vitesse pour une fonction de temporisation critique. Les programmeurs s’efforcent souvent de convertir les calculs en virgule flottante en calculs en nombres entiers afin d’en accélérer la vitesse.


Source : https://docs.arduino.cc/language-reference/en/variables/data-types/float/

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *