In diesem Beispiel hat der Wert 1.5F eine exakte Darstellung in IEEE 754 (und praktisch jeder anderen denkbaren binären oder dezimalen Gleitkommadarstellung), so dass die Antwort fast sicherlich ja sein wird. Es gibt jedoch keine Garantie, und es könnte Compiler geben, die es nicht schaffen, das Ergebnis zu erzielen.
Wenn Sie den Wert auf einen ohne eine exakte binäre Darstellung ändern, wie z.B. 5.1F, ist das Ergebnis keinesfalls garantiert.
Schon in ihrem ausgezeichneten klassischen Buch "The Elements of Programming Style" sagten Kernighan & Plauger:
Ein weiser Programmierer sagte einmal: "Gleitkommazahlen sind wie Sandhaufen; jedes Mal, wenn man einen bewegt, verliert man ein wenig Sand und sammelt ein wenig Schmutz auf". Und nach einigen Berechnungen kann es ziemlich schmutzig werden.
(Das ist einer von zwei Sätzen im Buch, die ich vor vielen Jahren markiert habe1.)
Sie stellen auch fest:
- 10.0 mal 0.1 ist so gut wie nie 1.0.
- Vergleichen Sie Gleitkommazahlen nicht nur auf Gleichheit
Diese Beobachtungen wurden 1978 (für die zweite Ausgabe) gemacht, sind aber auch heute noch grundsätzlich gültig.
Wenn die Frage in ihrem extrem eingeschränkten Umfang betrachtet wird, könnte es in Ordnung sein. Wenn sich die Frage jedoch sehr stark ändert, sind Sie wahrscheinlich eher gebissen als nicht, und Sie werden wahrscheinlich früher gebissen als später.
1 Der andere markierte Satz lautet (ohne Aufzählungszeichen):
- Der Unterprogrammaufruf erlaubt es uns, die Unregelmäßigkeiten in der Argumentenliste zusammenzufassen [...]
- Das Unterprogramm selbst fasst die Regelmäßigkeiten des Codes zusammen [...]