Float mit IF vergleichen

Gast #3170491
Lesenswert?

N. G. schrieb:
> hast du es schon eimal mit einem Cast probiert, etwa soif(temp > (float)1.0)
> nur so ne theorie

das ist doch Unsinn. Ein Cast ist hier nicht notwendig.

Vermutlich kommt der Debugger mit Optimierten code nicht klar und zeigt 
nur etwas falschen an.
Gast #3170507
Lesenswert?

be stucki schrieb:
> Bin mir gerade nicht sicher, aber die Konstante 1.0 ist doch vom Typ
> double. float und double sollte man aber nicht miteinander vergleichen
> und daher ist der Cast berechtigt.

und warum nicht? Außerdem ist es ein größer vergleich. Damit spielt eine 
Rundungsfehler beim wandeln auch keine rolle.
#3170558
Lesenswert?

Hatte vergessen zu erwähnen, dass das Ergebnis mit MS-C++ wie erwartet 
0.1 ist.

@Peter,
Danke für das 0.1f.

Ich bin "Hardwerker" und programmiere nur gelegentlich.
Ich war eigentlich überrascht, dass der Compiler bei der Zuweisung
eine Warnung wegen "double" ausgibt.

temp = 0.1;

Das ist vermutlich bei C-Compilern für Mikrocontroller nicht unbedingt 
der Fall, weil die oftmals gar kein echtes double haben. Soll heißen man 
kann double im Programm hinschreiben, aber es wird trotzdem nur float 
gerechnet und gespeichert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren