While Schleife mit sehr vielen Durchgängen
-
Hallo,
ich beschäftige mich gerade mit cpp. Zu Folgendem habe ich eine Frage:
int main(){ float n = 0; while(n < 100000000){ ++n; } cout << n << endl; return 0; }
Meine for-Schleife terminiert hier nicht. Dies müsste daran liegen, dass ich zu der sehr grossen Laufvariable jeweils 1 addiere, was bei Fliesskommazahlen ja problematisch ist.
Könnte mir jemand einen Tipp geben, wie Schleifen mit sehr vielen Durchläufen realisiert werden.
Vielen Dank schon jetzt
Sara
-
Saraa schrieb:
Dies müsste daran liegen, dass ich zu der sehr grossen Laufvariable jeweils 1 addiere, was bei Fliesskommazahlen ja problematisch ist.
So ist es. warum eine Fließkommazahl als Zähler ? Wie wärs mit einem uint64 (d.h. 64 bit integer)?
-
Ich finde auch die Frage interessant wie eine for Schleife terminieren soll, wenn man gar keine hat.
Oder die Frage was das alles mit C++/CLI zu tun hat.
-
Ja, es ist eine while-Schleife.
DarkShadow44 schrieb:
So ist es. warum eine Fließkommazahl als Zähler ? Wie wärs mit einem uint64 (d.h. 64 bit integer)?
Oder einem int64_t alias long long int, der geht auch schon bis 9 Trillionen und damit vermeidest du eventuelle Probleme, die mit der Benutzung von unsigned-Typen einhergehen können (Performance-Verlust und unerwartete Effekte bei Operation die auch signed-Typen involvieren).