Java rechnet falsch
Hi!
Komischer weise rechnet Java bei mir nicht mehr richtig!
Ich habe diesen ganz einfachen Code:
float value = 130/48;
System.out.println(value);
Und komischerweise gibt er mir aus:
2.0
Woran könnte das liegen? Weil jeder Mensch weiß, dass 130 / 48 nicht 2.0 ergibt!
3 Antworten
130 ist vom Typ Integer.
Wenn man einen Integer durch einen Integer teilt, bekommt man auch nur einen Integer.
Du musst aus entweder 130 oder 48 ein float oder double machen.
Entweder mit einem expliziten cast (float)130
oder indem du ein f anhänst 130F
Du kannst auch durch das Benutzen von Punkten automatisch in doubles casten lassen.130.
Aber dann wird sich der Compiler wegen "Possible loss of precision" beschweren und du musst wieder casten, oder den Typ von value ändern.
Probier mal:
double value = 130.0/48;
Das Casting erfolg erst nach der Berechnung. Versuch mal
float value = 130.0/48.0; System.out.println(value);
Hinweis: Es reicht schon, wen einer der beiden Operatoren in der Rechnung ein ".0" dahinter hat, es müssen nicht zwingend alle sein. Spart Tipparbeit ;)
Vielen Dank :)