Zahlenausgabe am LCD display

Hallo,

ich speichere einen Höhenwert von z.B. 4,0m als int-Zahl 40, also dem 10fachen.

die Zahl möchte ich auf einem LCD-Display dann als 4.0m ausgeben.

dazu habe ich geschrieben:

int x = 40

lcd.print(x /10.0); lcd.print("m")

die Ausgabe auf dem LCD sieht dann wie folgt aus:

4.00m....

woher kommt die 2te 0? wie kann ich diese unterdrücken?
ich benötige nur eine Kommastelle ( 4,0 - 3,9 usw..)

Vielen Dank für Eure Antwort!
schönen Sonntag noch !

lcd.print(x /10.0 , 0); siehe Serial.print() - Arduino Reference
Die zweite null kommt daher, da per default, ohne angegebenen Parameter, 2 Nachkommastellen ausgegeben werden.

es eght auch ohne Fließkommazahlen:

lcd.print(x / 10);
lcd.print(",");
lcd.print(x % 10);

Grüße Uwe

Ok Vielen Dank!

Oder so:

  uint8_t S1_OnHour, S1_OnMinute, S1_OffHour, S1_OffMinute, S2_OnHour, S2_OnMinute, S2_OffHour, S2_OffMinute;
  char lcdline[17];

      lcd.clear();
      sprintf(lcdline,"%01d:%01d",S1_OnHour,S1_OnMinute);
      lcd.print(lcdline);
      lcd.setCursor(0,1);
      sprintf(lcdline,"%01d:%01d",S1_OffHour,S1_OffMinute);
      lcd.print(lcdline);
      lcd.setCursor(6,0);
      sprintf(lcdline,"%02d:%02d",S2_OnHour,S2_OnMinute);
      lcd.print(lcdline);
      lcd.setCursor(6,1);
      sprintf(lcdline,"%02d:%02d",S2_OffHour,S2_OffMinute);
      lcd.print(lcdline);

Wenn ich schon dabei bin, kann mir einer auf die Sprünge helfen, wie ich per Tastendruck die Zahl erhöhen kann?

/* ===============================================
 * Zeitschaltuhr
 * =============================================== */ 
  uint8_t S1_OnHour, S1_OnMinute, S1_OffHour, S1_OffMinute, S2_OnHour, S2_OnMinute, S2_OffHour, S2_OffMinute;
  #define Schaltzeit(_hr_, _min_) (_hr_ * SECS_PER_HOUR + _min_ * SECS_PER_MIN)
  #define Schaltzeit1 (currentTime >= S1_OnTime) && (currentTime <= S1_OffTime)
  #define Schaltzeit2 (currentTime >= S2_OnTime) && (currentTime <= S2_OffTime)
    
 
   void HELP_FUNC_set_timer(int8_t l_u)
  {
    switch(_pos)
    {
      case 0: HELP_FUNC_set_timer(S1_OnHour); break; // hour
      case 1: HELP_FUNC_set_timer(S1_OnMinute); break; // hour
      case 2: S1_OffHour+l_u; break; // hour
      case 3: S1_OffMinute+l_u; break; // hour
      case 4: S2_OnHour+l_u; break; // hour
      case 5: S2_OnMinute+l_u; break; // hour
      case 6: S2_OffHour+l_u; break; // hour
      case 7: S2_OffMinute+l_u; break; // hour
    }
  }
 void digitalTimerDisplay(){

  lcd.setCursor(0,0);
  lcd.print(S1_OnHour);
  lcd.print(":");
  lcd.print(S1_OnMinute);
 lcd.setCursor(0,1);
  lcd.print(S1_OffHour);
  lcd.print(":");
  lcd.print(S1_OffMinute);
 lcd.setCursor(8,0);
  lcd.print(S2_OnHour);
  lcd.print(":");
  lcd.print(S2_OnMinute);
 lcd.setCursor(8,1);
  lcd.print(S2_OffHour);
  lcd.print(":");
  lcd.print(S2_OffMinute);

  
}

void LCDML_DISP_setup(LCDML_FUNC_set_timer)
{
  // setup function 

}
void LCDML_DISP_loop(LCDML_FUNC_set_timer) 
{
  // loop function, can be run in a loop when LCDML_DISP_triggerMenu(xx) is set
  // the quit button works in every DISP function without any checks; it starts the loop_end function
  LCDML_DISP_triggerMenu(1000); // set trigger for this function to 1000 millisecounds
 digitalTimerDisplay(); 
 if(LCDML_BUTTON_checkAny()) { // check if any button is presed (enter, up, down, left, right)
    // LCDML_DISP_funcend calls the loop_end function

      if (LCDML_BUTTON_checkUp())
    {    
          HELP_FUNC_set_timer(+1); LCDML_BUTTON_resetUp();
    }
      if (LCDML_BUTTON_checkDown())
    {
         HELP_FUNC_set_timer(-1);  LCDML_BUTTON_resetDown();
    }
      if (LCDML_BUTTON_checkRight())
    {
        _pos=(_pos+1)%8; LCDML_BUTTON_resetRight();
      }
    } 
}

HELP_FUNC_set_timer(+1); funktioniert nicht aber gibt keine Fehlermeldung
HELP_FUNC_set_timer(++); denke würde funktionieren, gibt aber Fehlermeldung

Weil so kann ich jede Zahl erhöhen

if (LCDML_BUTTON_checkUp())
{
S1_OnHour++;
}

So aber nicht

if (LCDML_BUTTON_checkUp())
{
S1_OnHour+1;
}