warum ist bei der rechnung 2 / 3= 0 ?

Status
Nicht offen für weitere Antworten.
K

Kala3

Gast
hi leute aber ich finde da etwas ganz komisch.
ich habe in meinem versuchsprogramm 3 int und ein double difiniert.
double ist mein ergebnis , also soll auch kommazahlen ausgeben.

aber anstatt bei z.B. 2 / 3 = 0.6 zu schreiben
sagt der 0.0 ????? was ist da falsch ??




gruss kala3
 
S

stev.glasow

Gast
2 und 3 sind ints oder?
int / int ergibt int
caste 2 oder 3 mal zu float
 

mic_checker

Top Contributor
Du hast , wenn ich das richtig versteh:

int a = 2;
int b = 3;
double c = a /b;

Oder ?

Dann macht er 2 / 3, da beides int's sind = 0, Ergebnis double dann halt 0.0.

Wenn du 0.66.. rauskriegen willst muss mind. einer der beiden Werte double sein (bzw. du kannst explizit casten).
 
K

Kala3

Gast
Code:
public class test11 {
	public static void main(String[] args) {
		int a = 3;
		int b = 2;
		int c = 9;
		double ergebnis;

ergebnis = a/b+c;
system.out.println(ergebnis);


also gibt der nicht 9.6 aus sondern nur 9.0
warum??? ???:L
 

dotlens

Top Contributor
wei 2 und 3 beides int sind, wird dein resultat auch int.
int kennt keine komma, also wird der Rest abgeschnitten.

Code:
double result = (double)(2/3)
wird dir mehr Freude bereiten

Edit: na das ging ja schnell :D
 

mic_checker

Top Contributor
Steht oben, der führt die Division mit int's durch, wodurch 0 rauskommt, deshalb musst du z.B. explizit casten (oder Typ direkt ändern).

edit:
scheinbar bin ich - jetzt mit dsl - langsamer als vorher ;)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben