If Else - ich blicke da nicht durch

    tft.setCursor(310, 160);                                            //    1 2 3 
         if (Tem1,1 >=10) {tft.print(" "); tft.print(Tem1,1);}          //      2 9 Grad
    else if (Tem1,1 >=0) {tft.print("  "); tft.print(Tem1,1);}          //        9 Grad
    else if (Tem1,1 <=-10) {tft.print(Tem1,1);}                         //    - 1 1 Grad
    else if (Tem1,1 <=-0) {tft.print(" ");tft.print(Tem1,1);}           //      - 5 Grad

Ich möchte;
Temperatur unter -10 Grad direkt anzeigen.
Temperatur zwischen -9.9 und -0 ein Leerzeichen vor dem anzeigen.
Temperatur zwischen 0 und 9.9 zwei Leerzeichen dann anzeigen.
Temperatur über 10 Grad ein Leerzeichen dann anzeigen.

Ziel ist es, dass die Kommazahl in der Temperatur immer an der gleichen Stelle auf dem TFT ist.
Wo ist da mein Denkfehler ?

Gruß Marcus

Nehmen wir mal an, Deine Variable Tem1 ist vom Typ float (oder double).
Dann ist meine Gegenfrage: Was soll das ‘,1’ in den Vergleichen bewirken?

Ich schreibe die immer so - und meistens funktioniert das:

         if (Tem1 >=  10.) { tft.print(" ");  }     //       29 Grad
    else if (Tem1 >=   0.) { tft.print("  "); }     //        9 Grad
    else if (Tem1 <= -10.) {                  }     //     - 11 Grad
    else if (Tem1 <    0.) { tft.print(" ");  }     //      - 5 Grad
    tft.print(Tem1,1);

Na ja, eigentlich schreibe ich den Anweisungsblock fast nie in dieselbe Zeile wie das if, aber das ist eine andere Geschichte.

a) compiler Warnings einschalten!
b) lass mal dein ,1 weg

if (Tem1 >=10) {tft.print(" "); tft.print(Tem1,1);}

und eigentlich kannst das tft.print aus der Klammer rausnehmen und einmal am schluss sowieso schreiben.

zu spät, aber ich habs jetzt schon geschrieben ^^

Danke euch....
Ohne die 1 klappt es, hat mich nun 2 Stunden gekostet.
Ab und an hat man nur noch Scheuklappen auf den Augen.
Die Tem1 ist eine flow die aber nur Einstellig angezeigt werden soll, daher die komma 1 bei Schreiben.

zwei Stunden ist ja nix, das hat mich letztes Jahr Tage beschäftigt.

versuch mal so ein Helferlein:

// Zahlen (float) von -99.9 .. 99.9 rechtsbündig ausgeben
// https://forum.arduino.cc/index.php?topic=714044.new#new
// by noiasca
// ausführlich zum nachlesen auf https://forum.arduino.cc/index.php?topic=634400.30

void decPrint(Stream &target, float value, byte decimals = 1)
{
  int32_t temp = value;
  if (temp >= 0)
  {
    target.print(" ");
    temp = -temp;
  }
  switch (temp)                    
  {
    case -9 ... 0: target.print(" ");
    // fall through
    case -99 ... -10: target.print(" ");
  }
  target.print(value, decimals);
}

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);

  decPrint(Serial, -99.9);
  Serial.println();
  decPrint(Serial, -9.91);
  Serial.println();
  decPrint(Serial, 0);
  Serial.println();
  decPrint(Serial, 9.912);
  Serial.println();
  decPrint(Serial, 99.9123);
  Serial.println();
}

void loop() {
}

decPrint sollte eigentlich auch dein TFT (oder LCD, oder ...) nehmen können.

Bei Gelegenheit mal nachschlagen was der Komma Operator macht:

https://de.wikibooks.org/wiki/C-Programmierung:Ausdr%C3%BCcke_und_Operatoren#Komma-Operator,

Serenifly:
Bei Gelegenheit mal nachschlagen was der Komma Operator macht:
https://de.wikibooks.org/wiki/C-Programmierung:Ausdr%C3%BCcke_und_Operatoren#Komma-Operator,

ZItat aus diesem WIki

Komma-Operator ,[Bearbeiten]
Der Komma-Operator erlaubt es, zwei Ausdrücke auszuführen, wo nur einer erlaubt wäre. Die Ergebnisse aller durch diesen Operator verknüpften Ausdrücke außer dem letzten werden verworfen. Am häufigsten wird er in For-Schleifen verwendet, wenn zwei Schleifen-Variablen vorhanden sind.

[color=#000000][color=#b00040]int[/color] x [color=#666666]=[/color] ([color=#666666]1[/color],[color=#666666]2[/color],[color=#666666]3[/color]); [color=#408080][i]// entspricht int x = 3;[/i][/color]

for (i = 0, j = 1; i < 10; i++, j)
{
//…
}[/color]

Das ist ein Besipiel für Anfängerschwierigkeiten-Blindheit-des-Experten. Dieser Wiki-Eintrag führt garantiert dazu
dass jeder newbee erst einmal etwas selbst programmiert um die exakte “Wirkung” zu verstehen. Das ist für mich kein Wiki sondern höchstens ein Winki-mit-dem-Splitter. Und was das Winken mit dem Splitter (Gegenteil von Zaunpfahl) bedeutet muss man sich dann doch selbst erarbeiten. Dann sollte man es nicht Wiki nennen sondern “Programmier-Anregung”
viele Grüße Stefan