HI,
kann mir mal jmd erklähren warum bei
System.out.println((99/100*(85+0))+1);
eine 1 rauskommt?
Und bei
System.out.println((0.99*(85+0))+1);
die 85.15 rauskommt?
Lg Dennis
HI,
kann mir mal jmd erklähren warum bei
System.out.println((99/100*(85+0))+1);
eine 1 rauskommt?
Und bei
System.out.println((0.99*(85+0))+1);
die 85.15 rauskommt?
Lg Dennis
Oder noch einfacher:
Warum ist 5/10 = 0; Falsch
Aber 10/5 = 2; Richtig
Offensichtlich kann Java nicht richtig teilen!
Hi,
Programmiersprachen teilen genrell in dem Datentyp der ihnen gegeben wird. In deinem Beispiel sind das Integerwerte. Einfach 5.0/10 schreiben, das ergibt 0.5.
Lg Knerd
So einfach und doch so verflickst nervig!
Danke
5/10 sind 0 ganze, der Nachkommateil wird bei der Integerdivison ignoriert.
12/5 wäre übrigens auch 2
man kann 5.0/10 rechnen, damit weiß Java, dass es eine Dezimalzahl ist.
Viel wichtiger ist: Was wenn die 5 von einer Variablen kommt:
int a=5
int b=10
System.out.println(a/b);
Ausgabe: 0
korrekt wäre es:
int a=5
int b=10
System.out.println((float)a/(float)b);
Ausgabe: 0.5
Dabei werden die Integers vor der Division in Dezimalzahlen umgewandelt(typecast).