# Java Bruchrechnung



## wolfgang12 (22. Aug 2010)

Wieso gibt er mir immer nur 0.0 aus?


```
float rechnung = 3 / 12;
		System.out.println(rechnung);
```

danke ;D


----------



## Antoras (22. Aug 2010)

Weil Java annimmt, dass die Zahlen Integer sind. Und ein Integer hat nun mal keine Nachkommastelle. Hänge an eine der Zahlen ein 'f' hinten dran und du bekommst das richtige Ergebnis (damit teilst du dem Compiler mit, dass es sich nicht um einen Integer sondern um einen Float handelt).


----------



## wolfgang12 (22. Aug 2010)

Antoras hat gesagt.:


> Weil Java annimmt, dass die Zahlen Integer sind. Und ein Integer hat nun mal keine Nachkommastelle. Hänge an eine der Zahlen ein 'f' hinten dran und du bekommst das richtige Ergebnis (damit teilst du dem Compiler mit, dass es sich nicht um einen Integer sondern um einen Float handelt).




Und wie mache ich das mit Variablen?

Also z.B.

System.out.println(ersteZahl / zweiteZahl);

Da kann ich ja kein "f" dranhängen -.-


----------



## eRaaaa (22. Aug 2010)

```
System.out.println(ersteZahl*1f / zweiteZahl);
System.out.println(ersteZahl*1. / zweiteZahl);
```

oder eben casten oder wie auch immer....


----------



## Gast2 (22. Aug 2010)

wolfgang12 hat gesagt.:


> Und wie mache ich das mit Variablen?
> Da kann ich ja kein "f" dranhängen -.-



Die Variablen direkt mit dem richtigen Datentyp deklarieren?

```
float a = 3;
float b = 12;
float c = a/b;
```


----------



## Jango (23. Aug 2010)

Deklariere deine Variable als double - das erkennt der Kompiler sofort.


----------



## Bergtroll (25. Aug 2010)

Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 2.5 Ausdrücke, Operanden und Operatoren


----------



## T0ken (25. Aug 2010)

```
float rechnung = 3 / 12;
        System.out.println(rechnung);
```

->

```
float rechnung = 3.0 / 12.0;
        System.out.println(rechnung);
```


----------

