52/143 = 0 ?

Status
Nicht offen für weitere Antworten.

lin

Top Contributor
hej,

hm, ich mal wohl wieder mal was völlig falsch:
Code:
double i = 52/143;
System.out.println(i);
System.out.println(Math.atan(i));

Das ergibt mir beides 0.0 :autsch:
thx4answers
 
P

perdian

Gast
byto hat gesagt.:
/ ist ganzzahlige division ohne rest
Nö!
Bei Integern, ja - bei float/double ist / auch weiterhin eine "normale" Division.

Zum oberen Beispiel:
Code:
double i = 52d/143d;
System.out.println(i);
System.out.println(Math.atan(i));
So sollte es klappen.
 

Soulfly

Bekanntes Mitglied
Aber ne Erklärung könnt ihr nicht geben, oder?:meld:

also 52/143 ergibt in dezimal schreibweise 0.363636periode.:?:
Da dies als Integer gehandelt wird, wird dieser gerundet.:!:
Bei Wert unter 0.5 runter ab 0.5 rauf.:idea:
Also wird daraus 0.0.

Fertig!
 

Nova

Bekanntes Mitglied
Soulfly hat gesagt.:
Aber ne Erklärung könnt ihr nicht geben, oder?:meld:

also 52/143 ergibt in dezimal schreibweise 0.363636periode.:?:
Da dies als Integer gehandelt wird, wird dieser gerundet.:!:
Bei Wert unter 0.5 runter ab 0.5 rauf.:idea:
Also wird daraus 0.0.

Fertig!

Hallo,

Nicht ganz, es wird immer abgerundet, d.h. 90/100 = 0,9 wird z.B. auch auf 0 gerundet!


Es gibt viele Möglichkeiten das Problem zu umgehen, die sinnvollsten wurden aber schon genannt.


mfg
Christian
 

byte

Top Contributor
Soulfly hat gesagt.:
Aber ne Erklärung könnt ihr nicht geben, oder?:meld:

also 52/143 ergibt in dezimal schreibweise 0.363636periode.:?:
Da dies als Integer gehandelt wird, wird dieser gerundet.:!:
Bei Wert unter 0.5 runter ab 0.5 rauf.:idea:
Also wird daraus 0.0.

Fertig!

setzen herr lehrer, 6! :bae:
 

Illuvatar

Top Contributor
Hm wenn du schon erklärst, erklär halt auch noch warum gerundet wird: Bei 52/143 wird das Ergebnis als int behandelt, weil kein anderer Typ vorhanden ist, auch wenn du das Ergebnis in ein double castest. Mit 52.0/143.0 wird das Ergebnis nicht erst in ein int gecastet, weil dann klar ist, dass es ein double ist.
 
Status
Nicht offen für weitere Antworten.

Oben