Transformation d'un double en nombre entier en Java

Y a-t-il un moyen de convertir java.lang.Double en java.lang.Integer ?

Une exception est levée

"java.lang.ClassCastException : java.lang.Double incompatible avec java.lang.Integer&quot ;

Vous devez obtenir explicitement la valeur int en utilisant la méthode intValue() comme ceci :

Double d = 5.25;
Integer i = d.intValue(); // i becomes 5

Ou

double d = 5.25;
int i = (int) d;
Commentaires (4)
Solution

Un Double n'est pas un Integer, donc le cast ne fonctionnera pas. Notez la différence entre la classe de Double et la primitive de Double. Notez également qu'un Double est un Number, [il possède donc la méthode][1] intValue, que vous pouvez utiliser pour obtenir la valeur en tant que int primitif.

[1] : http://docs.oracle.com/javase/6/docs/api/java/lang/Number.html#intValue%28%29

Commentaires (6)

Double et Integer sont des classes enveloppantes pour les primitives Java pour double et int respectivement. Vous pouvez effectuer un cast entre ces deux classes, mais vous perdrez la virgule flottante. Ainsi, 5,4 converti en int sera 5. Si vous le castez à nouveau, il sera égal à 5.0.

Commentaires (0)