1 / 2 = 0 1.0 / 2 = 0.5 1 / 2.0 = 0.5 1.0 / 2.0 = 0.5 ((double) 1) / 2 = 0.5 1 / ((double) 2) = 0.5 ((double) 1) / ((double) 2) = 0.5 1 * 2 = 2 1.0 * 2 = 2.0 1 * 2.0 = 2.0 1.0 * 2.0 = 2.0 ((double) 1) * 2 = 2.0 1 * ((double) 2) = 2.0 ((double) 1) * ((double) 2) = 2.0 1 / 2 * 2 = 0 1 / 2 * 2.0 = 0.0 1 / (2 * 2.0) = 0.25 1 / 2.0 * 2 = 1.0 1 / (2.0 * 2) = 0.25 1.0 / 2 * 2 = 1.0 1.0 / (2 * 2) = 0.25
Wie kann 1/2 gleich 0 sein, 1.0/2 aber 0.5?!
AntwortenLöschenBei Ganzzahldivision wird abgerundet, damit der Wert in die Ganzzahl passt. Aber sobald eine Fließkommazahl an dem ganzen Spaß beteiligt ist, wird automatisch alles in Fließkommazahlen umgewandelt und das Ergebnis muss dann nicht mehr auf Ganzzahl gerundet werden. Selbes Spiel auch bei
AntwortenLöschen5 / 3 = 1
5 / 3.0 = 1.666..
5.0 / 3 = 1.666..
Die Sache hat auch ihre Tücken, wie man bei
AntwortenLöschen1 / 2 * 2.0 = 0.0
sieht... Wird natürlich alles von links nach rechts ausgewertet und da ist 1 / 2 in Java nunmal 0.
Es gibt so schöne böhmische Dörfer!
AntwortenLöschen