[C#] Rechnung ergibt immer 0

BK117

Aktives Mitglied
Hey Leute,
das ist mein erster Post hier im Forum, und hoffe, dass ich das richtige Forum getroffen habe, und auch alles notwendige hier reinschreibe.
Also es geht um Folgenden Code:
Code:
        public Program()
        {
            decimal ergebnis = 1m;
            for (int i = 0; i < 29; i++)
            {
                ergebnis *= ((365 - i) / 366);
                Console.WriteLine((365 - i) / 366);
            }
            Console.WriteLine("Ergebnis: " + (1 - ergebnis));
            Console.ReadLine();
        }
Ich wollte damit eine Wahrscheinlichkeit berechnen.
Aber der Term ((365 - i) / 366) ergibt irgendwie immer 0.
Das Problem hatte ich noch nie bei einer Rechnung, daher liegt irgendwie nahe, dass es ein dummer Fehler ist, den ich einfach nicht sehe, weil er schon wieder zu einfach ist ^^
Eigentlich sollte doch alleine im ersten Durchlauf ((365 - 0) / 366) = (365 / 366) = 0,997 rauskommen, aber in der Console.WriteLine sieht man ja, dass , warum auch immer, 0 raus kommt.

Ich hoffe ihr könnt helfen, weil ich anscheinend den Wald vor lauter Bäumen nicht sehe :D
Danke in Vorraus
 
Zuletzt bearbeitet:

Kiri

Bekanntes Mitglied
C# ist lange her bei mir, aber ich vermute, dass dieser Teil

Code:
((365 - i) / 366)

0 ergibt, da es alles Ganzzahlen sind (364/366)! Probiere mal

Code:
((365m - i) / 366m)
 

BK117

Aktives Mitglied
Oh, ja stimmt ^^ danke.
Ich wusste doch, dass ich irgendwas übersehen habe :D
Danke

365.0 hätte es auch gemacht, für ein Double, aber 365.0m ist da schon am besten. Dann hat man auch nen guten Decimal Wert.

Wie gesagt, nochmal danke.
Manchmal sieht man die einfachsten Dinge nicht ;)
 
Zuletzt bearbeitet:
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben