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.
-
Ich tippe mal auf: gamesWon ist 0.
Ich tippe mal auf: gamesWon ist kleiner als
1000000.
-
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%