[C#] Rechnung ergibt immer 0

Bitte aktiviere JavaScript!
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:
A

Anzeige




Vielleicht hilft dir unser Java-Tutorial hier weiter —> (hier klicken)
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)
 
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:
A

Anzeige




Du möchtest Python lernen? Dann sichere dir hier alle wichtigen Grundlagen.
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben