Go Down

Topic: [Résolu] Affichage float sur LCD avec une décimale (au lieu de 2) (Read 5852 times) previous topic - next topic

Brisebee

May 24, 2012, 11:21 am Last Edit: May 30, 2012, 03:11 pm by Brisebee Reason: 1
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:

Code: [Select]
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.

skywodd

Bonjour,

Peut être avec un truc dans ce genre :
Code: [Select]
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
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Brisebee


barbudor

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

Code: [Select]
  float test = 123.456;
  Serial.println( test, 1 );


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

Brisebee

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

skywodd


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

Code: [Select]
  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 !
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

skizoh

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

Skizo !

Go Up