[RISOLTO]Scrivere valore di temperatura su shield "display Nokia 6100"

Ciao, purtroppo non riesco a capire come mai non scrive all' interno della variabile "test":

//Programma di test display 6100

#include <ColorLCDShield.h>

LCDShield lcd;    
int potPin = 0;
char test[20] = "";
float temperature = 0;
long val=0;



void setup()
{
  lcd.init(PHILLIPS);  //Driver display
  lcd.contrast(40);  // contrasto
  lcd.clear(WHITE);  // reset schermo
  lcd.setStr("TEMPERATURA", 2, 20, SLATE, WHITE);
  lcd.setStr("MISURATA", 20, 30, SLATE, WHITE);
  Serial.begin(9600); 
}

void loop()
{
  val = analogRead(potPin);                 //Leggo la temperatura da analogica
  temperature = (5*val*100/1024);       //converto la tensione in temperatura
  printf(test, "%f", temperature);
  Serial.println (temperature);             //scrivo su seriale
  lcd.setStr(test, 40, 40, SLATE, RED); // scrivo su display Nokia 6600
}

Non ne esco purtroppo

Saluti