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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.