Come faccio a scrivere un valore con 2 decimali dopo la virgola?

Problema stupido ma al momento sono in panne :blush:

Ho una variabile Val che è il risuktato di un operazione matematica e mi da valori con molti decimali es. 3.956478512 ora usando l'istruzione per scrivere sul display lcd.print(val); mi viene scritta solo l'intero.

Come faccio a dirgli di voler vedere così: 3.95

La LiquidCrystal supporta sulla print solo numeri interi o stringhe: http://arduino.cc/en/Reference/LiquidCrystalPrint

Devi convertire quindi il tuo numero in virgola mobile in una stringa oppure spezzarlo in 2 interi (il primo per la parte intera ed il secondo per la parte decimale: basta un int(val*100) per avere i 2 decimali), separati dalla stampa del "."

non ho capito =(

parapaolo: non ho capito =(

Leggi a partire da qui, c'è la soluzione al tuo problema.

ciao stavo leggendo questa discussione, in questa parte di programma non si usano stringhe, quindi i risultati che ottengo non sono corretti anche se mi sembravano attendibili

void printTemperature(DeviceAddress deviceAddress)
{
  float tempC=sensors.getTempC(deviceAddress);
  delay(500);
  if (tempC==-127.00) 
  {
    Serial.print("Error getting temperature");
  } 
  else 
  {
   Serial.print("C: "); 
  //datostringTEMP=String(int(tempC*100));
  Serial.println(tempC,3);

  lcd.setCursor(0,2);
  //lcd.print((char)223);//arduino symbol ° lcd
  lcd.write(B11011111);//arduino symbol ° lcd
    lcd.print("C");
   lcd.setCursor(3,2);
     lcd.print (tempC,3);
    }