Typkonvertierung

Alsou

Aktives Mitglied
Hallo, ich weiß, dass das eine dumme Frage ist... will aber genau wissen... ich hab da ein Programm, das Zahlen berechnet( Grundrechenarten). Die Division sieht so aus: (float) a/b.

Meine Vermutung: Der Operator /liefert nur den ganzzahligen teil des Quotienten, deshalb die Typkonvertierung oder?

Danke:oops:
 

eRaaaa

Top Contributor
Was sind denn a und b? Integer?

Java ist auch eine Insel – 2.4 Ausdrücke, Operanden und Operatoren
Der Divisionsoperator

Der binäre Operator »/« bildet den Quotienten aus Dividend und Divisor. Auf der linken Seite steht der Dividend und auf der rechten der Divisor. Die Division ist für Ganzzahlen und für Fließkommazahlen definiert. Bei der Ganzzahldivision wird zur Null hin gerundet und das Ergebnis ist keine Fließkommazahl, so dass 1/3 das Ergebnis 0 ergibt, und nicht 0,333… Den Datentyp des Ergebnisses bestimmen die Operanden und nicht der Operator. Soll das Ergebnis vom Typ double sein, muss ein Operand ebenfalls double sein.

Java:
		int a=1,b=5;
		System.out.println(a/b);
		System.out.println((float)a/b); //a*1f/b
		
		float c=1,d=5;
		System.out.println(c/d);
		//bzw
		System.out.println(c/b);
 
Zuletzt bearbeitet:

U2nt

Bekanntes Mitglied
Integer sind Ganzzahlen, also wenn du einen Int/Int machst kommt eine ganze Zahl, ein Integer raus. Auch wenn dus zum float castest ändert sich nix dran.

Gibst du jedoch floats als Rechnung direkt an also a bzw b dann können da auch Floats rauskommen.

Ob der Quotient eine Ganzzahl ist hängt demnach davon ab was du rechnest :s
 

Marco13

Top Contributor
Integer sind Ganzzahlen, also wenn du einen Int/Int machst kommt eine ganze Zahl, ein Integer raus. Auch wenn dus zum float castest ändert sich nix dran.

Aber bei
int a = 1;
int b = 2;
float c = (float)a/b;
bindet der cast stärker als das /, deswegen kommt da ein float raus.

EDIT: ...und eben nicht "irgendein" float, sondern der richtige, also 0.5f in diesem Fall ;)
 

Ähnliche Java Themen

Neue Themen


Oben