Rückgabe erflogt nicht als Double

peter222

Mitglied
Hallo, ich bin ein blutiger Einsteiger in Java und brauche deshalb deine/eure Hilfe bei einem kleinen Problem:

Java:
public class Bruch {
    int zaehler;
    int nenner;

    double dezimalwert() {
        return zaehler/nenner;
    }
}

public class Bruchtest1 {
    public static void main(String[] args) {
        Bruch c = new Bruch();
        c.nenner = 5;
        c.zaehler = 27;
        System.out.println(c.dezimalwert());
    }
}

Wenn ich das Programm ausführe, wird 5.0 ausgegeben, obwohl ich double als Datentyp der Rückgabe gewählt habe.
Liegt das daran, dass zaehler und nenner als int definiert sind? Wie kann man das Problem beheben?

Danke schon einmal im Voraus für eure Antwort auf diese wahrscheinlich simpel zu lösende Einsteigerfrage 😀!
 
Zuletzt bearbeitet:
Wie du schon selbst gesagt hast, sind beide Felder ints, darum rechnet Java mit beiden als int und castet nach der Berechnung auf double.
Wenn du return (double) zaehler / nenner; ein Feld auf double castest, wird immer mit der größten Einheit (double - was für eine Überraschung) gerechnet.

PS: [code=java]//Java Code[/code] kannst du deinen Code posten. Oder unter dem Einfügen... Knopf gibts auch die Code-Tags
 

Zurück
Oben