nombre de chiffre après la virgule

Bonjour maintenant que mon tableau de moyenne sur 20 30 ou 40 mesures fonctionne, j'ai un dernier souci.

Lorsque je lie la valeur de l'hygrométrie, le DHT22 me la renvoi avec 2 chiffres après la virgule que ce soit en float ou int. Bon c'est comme ça.

Maintenant lorsque le l'envoi vers l'afficheur je code:
lcd.setCursor(15,0); lcd.print(HRC,1); ce qui a pour conséquence de n'afficher qu'un digit après la virgule c'est ce que je veux.

Mais il y a un Mais.
avant d'afficher je fais le test suivant:
if (HRC != HRAA) {
HRC = HRAA;
THChange = true;

et comme il y a 2 digits après la virgule dés que le 2eme change, je vais afficher la valeur qui elle n'est que sur un digit après la virgule, ce qui est inutile.

Je recherche la manière de faire un filtre sur la valeur renvoyée par DHT22 dans HRAA pour que celle-ci ne soit comparée que sur le 1er digit après la virgule

du genre HRC = ???????????????
pas HRC = (HRAA,1) car ca ne prend qu'un digit AVANT la virgule.

Merci de votre aide...

Tu multiplies tes nombres par 10 et tu gardes la partie entière, et tu fais tes tests et affichages à partir de ces valeurs.

Exemple : tu as 50.23 que tu multiplies par 10 pour garder 502.
Lorsque tu reçois une nouvelle valeur disons 50.26, tu la multiplies aussi par 10 et tu gardes 502.
Après test, les deux valeurs sont égales, pas besoin de changer l'affichage.

Pour afficher : lcd.print(HRC/10,1) te donnera bien 50.2

ok mais quelle fonction pour garder la partie entière?
Merci de ton aide.

youpi avec la fonction floor je récupère l'entier.
Donc
valeur reçu = 57.25
57.25 *10 =572.5
resultat = floor 572.5
resultat = 572
on divise par 10 = 57.2
un seul digit après la virgule..

simple quand on a trouvé sur le net.

A noter que dans la liste "officiel" Référence du langage Arduino en français, la commande floor n'esxiste pas et pourtant l'IDE la comprend et ca marche..

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Reference

Si tu déclares une variable float et une autre int :

float x=572.25;
int i = x;

x vaudra directement 572.

Pour faire un arrondi à l'entier le plus proche, il faut ajouter 0.5 :
int i = (int)(x+0.5);Comme ça 572.4999 te donnera 572 et 572.50001 te donnera 573.