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).


Anmelden zum Antworten