# java.lang.ArithmeticException: / by zero



## simon_m (14. Okt 2005)

Hi.
Bei meinem Prog bekomme ich in folgendem Abschnitt immer eine / by zero - exception, obwohl "anzahl" nicht null ist (zumindest denke ich das):


```
// Punkte
			punkte.setText("Punkte: " + Math.round(richtig / (anzahl / 100))
					/ (zeit / 1000) * anzahl);
```

wie kann das sein? Oder hab ich irgendwo einen Fehler gemacht und Anzahl muss 0 sein?

mfg Simon


----------



## Sky (14. Okt 2005)

sind das alles 'ints' ? Dann wird der Feher immer kommen, solange anzahl < 100 ist, weil 

x / 100 ist immer < 1 und > 0 wenn für x gilt: x > 0 und x < 100.
Ein Zahl > 0 und < 1 als int entspricht 0.

Gleiches gilt natürlich für zeit < 1000.


----------



## mischer (14. Okt 2005)

Hi, 

von welchem Datentyp ist anzahl?
Wenn anzahl ein int und kleiner 100 ist dann ergibt anzahl / 100 = 0.

Hintergurnd:
Wenn du int durch int teilst kommt auch int raus, d.h. 50/100 = 0, die Nachkommastellen einfach abgeschnitten werden.

Caste die Werte einfach auf double, dann geht's.

MfG
mischer 

@Sky: naja da war mal wieder einer schneller  :shock:


----------



## simon_m (14. Okt 2005)

danke. Ich habe aus 100 bzw. 1000 einfach 100.0 und 1000.0 gemacht. Jetzt funzt es!


----------

