[Résolu] Affichage float sur LCD avec une décimale (au lieu de 2)

Bonjour,

Je cherche à afficher une température sur un afficheur LCD avec une seule décimale (éventuellement en arrondissant), alors qu'actuellement je n'arrive à l'afficher qu'avec 2 décimales, ce qui n'est pas du tout nécessaire.

Je joins mon bout de code:

lcd.setCursor(0,1); // positionne curseur colonne 1, ligne 2
lcd.print("Temp = ");
lcd.print(ma_tempetf);
lcd.write(0xDF); // affichage "°"
lcd.print("C");

Si vous avez une idée simple.

Bonjour,

Peut être avec un truc dans ce genre :

lcd.setCursor(0,1);
lcd.print("Temp = ");
lcd.print((int)ma_tempetf);
lcd.print('.');
lcd.print((int)((float)(ma_tempetf - (int)ma_tempetf) * 10));
// Exemple : ma_tempf = 17.32 (ma_tempf -> type float)
// (int)ma_tempetf = 17
// (ma_tempetf - (int)ma_tempetf) = 17.32 - 17 = 0.32
// 0.32 * 10 = 3.2
// (int)3.2 = 3
lcd.write(0xDF);
lcd.print('C'); // simple quote pour un seul caractére

Merci Skywodd, ça marche nickel.

La fonction print( float) prend en 2eme paramètre le nombre de décimales :

  float test = 123.456;
  Serial.println( test, 1 );

Marche avec toute classe dérivée de Print dont Serial et LiquidCrystal.

Merci beaucoup Barbudor,
C'est encore bien plus simple. Je viens de tester, super !
Dire que j'ai cherché depuis un moment !

barbudor:
La fonction print( float) prend en 2eme paramètre le nombre de décimales :

  float test = 123.456;

Serial.println( test, 1 );




Marche avec toute classe dérivée de Print dont Serial et LiquidCrystal.

On en apprend tout les jours !
Merci barbudor !

effectivement on en apprend tout les jours, merci barbatruc ! :slight_smile:

Skizo !