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/