Saluti e domanda da topotti

prima di tutto ciao a tutti!!!
sono da poco possesso re di un 2009 con scheda LCD Key.
ho un problema che non riesco a risolvere.
mi spiego:
vorrei far visualizzare la temperatura sul diplay
ma non riesco a far in modo a visualizzare i decimali.
se non ho capito male per visualizzare qualcosa sul diplay devo passarlo come stringa. ma i valori che devo visualizzare sono di tipo "float".
riesco solo a far visualizzare i gradi interi. :-[

  char str1[6];
  int temper;
  float data;
  char buf[100];
  data = temp;

  sprintf(buf,"%f", temp);

  temper = int( temp) ;
  itoa (temper,str1,10);
  
  lcd1.init();
  lcd1.clear();             
  lcd1.cursorTo( 0, 0 );
  lcd1.printIn( "Temp.: ");
  lcd1.printIn( str1 );
  lcd1.print(temper); 
  lcd1.print( ' ' ); 
  lcd1.print( 'C' );

come si può vedere dal codice non sono proprio esperto (le sto provando tutte) ma sto facendo il possibile.

grazie a tutti.

converti float in int e stampa gli interi, manda il punto e sottrai dal float gli interi (Ti restano i decimali) moltiplicho per 10 o 100 ( per avere 1 o 2 posizioni) e converti di nuovo in int.
Se il numero é minore di 10 e vuoi 2 cifre stampi un 0 e poi il numero.
Ciao Uwe

volevo ringraziarti per il consiglio.
GRAZIE!!!!!!
ora devo solo implementare quando o decimali e gli interi sono ad una cifra.

int temper, temp_int,decim_int;
  float temp_dec_f;
  char temp_str[6];
  char decim[3], interi[3];
  char temp_finale[6];

Serial.print ( "temp: " );          // temperatura al PC 
Serial.println( temp );             // temperatura al PC 
 
  temp_int = int( temp) ;           // cambio in int
Serial.print( "temp_int: " );       // cambio in int
Serial.println( temp_int );         // cambio in int

  temp_dec_f = temp - temp_int;     // mi trovo i decimali
Serial.print( "temp_dec_f: " );     // mi trovo i decimali
Serial.println( temp_dec_f );       // mi trovo i decimali

  decim_int = temp_dec_f * 100;     // trasformo i decimali in intero
Serial.print( "decim_int: " );      // trasformo i decimali in intero
Serial.println( decim_int );        // trasformo i decimali in intero
 
  itoa (temp_int,interi,10);        // temp interi
Serial.print ( "interi: " );        // temp interi
Serial.println( interi );           // temp interi
   itoa (decim_int,decim,10);
Serial.print ( "decim: " );      
Serial.println( decim );      

  strcpy (temp_finale, interi);     // mi trovo la temp finale
  strcat (temp_finale, ".");        // mi trovo la temp finale
  strcat (temp_finale, decim);      // mi trovo la temp finale
Serial.print ( "temp_finale: " );   
Serial.println( temp_finale );

grazie ancora. ciao