Einfache Rechnung funzt nicht!

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! :smiley:
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).