zwei Gleitkommazahlen durcheinander dividieren

Endymion

Bekanntes Mitglied
Hi, folgendes Problem:
Ich will einen Wahrheitswert durch
Java:
if(Math.random() < (double) (20 / 365)) {
bekommen. So, es ergibt aber immer false. Wenn ich jetzt
Java:
System.out.println((double) (20 / 365));
schreibe, bekomme ich immer 0.0. Was ist hier falsch?

Edit: Wenn ich
Java:
if(Math.random() * 1000 < (double)  (20 * 1000 / 365)) {
mache, passt alles, die zahlen sind aber ungenauer... Wie kann ich es genau ausrechnen?
 
20 und 365 sind Ganzzahlen, und 20/365 ist eben 0. Wenn du das Ergebnis in double castest, kommt eben 0.0 raus.
Du musst von vorne herein mit Doubles rechnen. Versuch's mal mit [c]20.0/365.0[/c].
 

Zurück
Oben