C++ Gewinnchance berechnen



  • Hallo, ich möchte aus einem Simuliertem Casino Spiel die Gewinnchance errechnen.
    Das Spiel habe ich fertig programmiert also ist eigentlich nur diese Funktion die mir ärger macht:

    float winningChance(int gamesWon){
    	float chance = 0;
    	chance = gamesWon/1000000;
    	chance = chance*100;
    	return chance;
    }
    

    Die 1000000 ist die Anzahl meiner Durchgänge.
    Ich bin schon mal mit dem Debugger drüber und er gibt mit jedes mal 0 als Ergebnis der Division.
    Warum? 😕



  • DerEsel schrieb:

    Ich bin schon mal mit dem Debugger drüber und er gibt mit jedes mal 0 als Ergebnis der Division.
    Warum? 😕

    Ich tippe mal auf: gamesWon ist 0.



  • Nein, gamesWon ist meistens um die 490000.


  • Mod

    Ich tippe mal auf: gamesWon ist 0.

    Ich tippe mal auf: gamesWon ist kleiner als 1000000 . 😉


  • Mod

    DerEsel schrieb:

    Nein, gamesWon ist meistens um die 490000.

    Eine Division von zwei Integern resultiert immer in einem Integer. Und dabei werden die Nachkommastellen des Quotienten einfach abgeschnitten: 4/5 == 0 , 8/6 == 1 , usw.

    Du musst schreiben:

    float chance = gamesWon/1000000.f;
    // Hier ist das Literal vom Typ float, und dementsprechend wird auch gamesWon zuerst zu einem float konvertiert bevor die Division durchgeführt wird.
    


  • Arcoth schrieb:

    Ich tippe mal auf: gamesWon ist 0.

    Ich tippe mal auf: gamesWon ist kleiner als 1000000 . 😉

    Argh, gar nicht gesehen.



  • Vielen dank Arcoth jetzt passt es!
    Falls es jemanden interessiert die Gewinnchance von Craps ist ~49% 😃


Anmelden zum Antworten