Gibt es eine Möglichkeit, java.lang.Double
in java.lang.Integer
umzuwandeln?
Es wirft eine Ausnahme
"java.lang.ClassCastException: java.lang.Double inkompatibel mit java.lang.Integer"
Sie müssen den int-Wert explizit mit der Methode intValue() wie folgt ermitteln:
Double d = 5.25;
Integer i = d.intValue(); // i becomes 5
Oder
double d = 5.25;
int i = (int) d;
Ein Double
ist keine Ganzzahl
, daher funktioniert der Cast nicht. Man beachte den Unterschied zwischen der Klasse von "Double" und dem Primitivum von "Double". Beachten Sie auch, dass ein Double
eine Zahl
ist, also hat es die Methode intValue
, die Sie verwenden können, um den Wert als primitiven int
zu erhalten.
Double und Integer sind Wrapper-Klassen für Java-Primitive für double bzw. int. Sie können zwischen diesen Klassen umwandeln, aber Sie verlieren dabei die Fließkommazahl. Das heißt, dass 5,4 in einen int gecastet wird und 5 ist. Wenn Sie es zurück casten, wird es 5,0 sein.