Infinity Problem

Hallo zusammen…hab versucht ein Programm zu schreiben dass die eulersche Zahl näherungsweise bestimmt

folgender Code gibt mir aber immer infinty zurück… ich find den Fehler nicht


public class DieEulerscheZahl {

    // Methode zur Berechnung einer Fakultaet
    public double fakultaetBerechnung(int zahl) {
        int zahlFak = 0;

        if (zahl == 0)
            return 1;

        for (int i = 1; i <= zahl; i++) {
            zahlFak = zahlFak * i;
        }
        return zahlFak;
    }



    public static void main(String[] args) {

        DieEulerscheZahl rechner = new DieEulerscheZahl();
        int genauigkeit = 5;
        double summe = 1;
        
        for (int i = 1; i <= genauigkeit; i++) {
            summe = summe + ( 1 / rechner.fakultaetBerechnung(i));
        }
        
        
        
        System.out.println("Die Eulersche Zahl mit Genaugikeit : 5");
        System.out.println(summe);

        // infinity

    }

In der Schleife eine Ausgabe zu machen wie
System.out.println("summe “+summe+” fak “+i+” ist "+rechner.fakultaetBerechnung(i));
oder die verwendeten Methoden mal gezielt einzeln zu testen (also z.B. zu testen, ob die Fakultätsfunktion WIRKLICH die Fakultät berechnet) führt schnell auf den Fehler: In der Fakultätsfunktion ist “zahlFak” am anfang 0, und das kann man mit Faktoren multiplizieren solange man will, es ändert sich nicht… zahlFak muss am Anfang 1 sein.