Problem bei der Division mit Java

Status
Nicht offen für weitere Antworten.

ankmanu

Bekanntes Mitglied
Hi@all,

ich bin sehr überrascht, was bei folgender Rechnung rauskommt:

Folgende Werte sind gegeben:
Java:
l_arbeitsfläche = 273
h_arbeitsfläche = 69
x_tonne = 56
y_tonne = 44
Hier nun die Rechnung:
Java:
System.out.println("l_arbeitsfläche = "+länge_arbeitsfläche);
System.out.println("h_arbeitsfläche = "+höhe_arbeitsfläche);
System.out.println("x_tonne = "+x_Tonne);
System.out.println("y_tonne = "+y_Tonne);
double x_zwischen = länge_arbeitsfläche / x_Tonne; 
double y_zwischen = höhe_arbeitsfläche / y_Tonne; 
System.out.println("x_zwischen = "+x_zwischen);
System.out.println("y_zwischen = "+y_zwischen);

Im Terminal kommt aber folgendes raus:
Java:
l_arbeitsfläche = 273
h_arbeitsfläche = 69
x_tonne = 56
y_tonne = 44
x_zwischen = 4.0
y_zwischen = 1.0
Das Ergebnis stimmt doch einfach nicht, denn zum Beispiel 69/44 = 1,568181818 !!!

Warum ist das so, hab ich einen Fehler gemacht oder liegt das an Java?

viele grüße
manu
 
Das Ergebnis stimmt doch einfach nicht, denn zum Beispiel 69/44 = 1,568181818 !!!

Warum ist das so, hab ich einen Fehler gemacht oder liegt das an Java?
Ersteres. Ich nehme mal an das l_arbeitsfläche, h_arbeitsfläche... ints sind.

Ganzzahl / Ganzzahl ergibt immer eine Ganzzahl.

Wenn Du ein double als Ergebnis haben willst, muss mindestens einer der beteiligten Werte ein double sein.
 
Liegt daran, dass du mit Integer teilst und diese kennen keine komma-stellen. Deswegen wird "gerundet". Einfaches Beispiel:

Java:
int a	= 5,
    b	= 2;
    	
double aa = 5.0,
       bb = 2.0;
    	    	
double dbl	= a/b;
double ddbl	= aa/bb;
    	
System.out.println(dbl);
System.out.println(ddbl);

Ergebnis:
Code:
2.0
2.5

rechne gleich mit double, dann stimmt dein Ergebnis auch.
 
Okay, das mit dem das int und int immer ganzzahl ergibt wusste ich nicht...

Danke nochmal für die schnellen Antworten!

Viele Grüeß
manu
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben