Fehler in Schleife mit Fließkommazahlen
-
Hi Leute,
kann mir einer sagen wo meine letzte Zahl geblieben ist ???[code]
#include <iostream>
using namespace std;void main() {
double eins;
double zwei;eins = .480f;
zwei = .612f;cout << "Anfang : " << eins <<endl;
cout << "Ende : " << zwei <<endl;while (eins <= zwei) {
cout << eins << "\n";
eins += .001;
}}
Danke im vorraus...
-
In der while-Schleife.
Du zählst immer eins hoch und prüfst dann.
Wenn Du nach der Schleife noch ein cout machst, kommt die Zahl raus.
-
Gleitkommazahlen sind ungenau.
-
daishi schrieb:
In der while-Schleife.
Du zählst immer eins hoch und prüfst dann.
Wenn Du nach der Schleife noch ein cout machst, kommt die Zahl raus.die Bedingung ist aber "kleiner Gleich" und es müsste dann korrekt ausgegeben werden, wenn ich mich nicht irre
-
Fließkommatypen sind prinzipbedingt ungenau. Du wirst praktisch nie genau auf zwei kommen. Wenn du eine feste Anzahl Nachkommastellen hast, verschiebe das Komma entsprechend nach rechts und verwende ints.
-
Bashar schrieb:
Gleitkommazahlen sind ungenau.
Hi Bashar, brauche aber die Fließkommazahlen, was konnte ich denn sonst noch machen??
-
Das:
MFK schrieb:
Wenn du eine feste Anzahl Nachkommastellen hast, verschiebe das Komma entsprechend nach rechts und verwende ints.
für die ausgabe dann zb /1000.0