float

Description :

Type de données pour les nombres à virgule flottante, un nombre qui a une virgule décimale. Les nombres à virgule flottante sont souvent utilisés pour approximer les valeurs analogiques et continues car ils ont une résolution supérieure à celle des nombres entiers. Les nombres à virgule flottante peuvent être aussi grands que 3,4028235E+38 et aussi bas que -3,4028235E+38. Ils sont stockés sous forme de 32 bits (4 octets) d’informations.

Syntaxe :

float var = val;

Paramètres :

var : Nom de variable.
val : la valeur que vous attribuez à cette variable.

Exemple de code :

float myfloat;
float sensorCalbrate = 1.117;

int x;
int y;
float z;

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

 

Remarques et avertissements :

Si vous faites des calculs avec des flottants, vous devez ajouter un point décimal, sinon il sera traité comme un entier. Voir la page Constantes à virgule flottante pour plus de détails.

Le type de données float n’a que 6 à 7 chiffres décimaux de précision. Cela signifie le nombre total de chiffres, pas le nombre à droite de la virgule décimale. Contrairement à d’autres plates-formes, où vous pouvez obtenir plus de précision en utilisant un double (par exemple jusqu’à 15 chiffres), sur l’Arduino, double a la même taille que float.

Les nombres à virgule flottante ne sont pas exacts et peuvent donner des résultats étranges lorsqu’ils sont comparés. Par exemple, 6,0 / 3,0 peut ne pas être égal à 2,0. Vous devriez plutôt vérifier que la valeur absolue de la différence entre les nombres est inférieure à un petit nombre.

La conversion de virgule flottante en nombre entier entraîne une troncature :

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

 

Si, à la place, 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 round() fonction :

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

 

Les mathématiques à virgule flottante sont également beaucoup plus lentes que les mathématiques à nombre entier dans l’exécution des calculs, elles doivent donc être évitées si, par exemple, une boucle doit s’exécuter à la vitesse maximale pour une fonction de synchronisation critique. Les programmeurs vont souvent jusqu’à un certain point pour convertir les calculs à virgule flottante en mathématiques entières afin d’augmenter la vitesse.

 


 

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

 

Laisser un commentaire