Float mit IF vergleichen

Gast
Ja nur ein Schreibfehler... Teste ich mal.

Hmm mit dem AVRSimulator funktioniert es. Wenn ich mit meinem Jtagice3 
auf dem Controller debugge nicht. Komisch.
Gast
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
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.
Gast
Helmut S. schrieb:
> Nur so geht es ohne Fehler und Warnungen mit MS-C(++).
> Man beachte das Semikolon.
> float temp;
> temp = (float) 0.1;
> if (temp > 1.0)
> {
>   temp = 1.0;
> }

man castet doch keine Konstanten, dann schreibt man hin das es ein float 
sein soll!


temp = 0.1f;
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

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.