Cast Double to Integer in Java

C'è un modo per lanciare java.lang.Double a java.lang.Integer?

Lancia un'eccezione

""java.lang.ClassCastException: java.lang.Double incompatibile con java.lang.Integer"

Dovete ottenere esplicitamente il valore int usando il metodo intValue() come questo:

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

Oppure

double d = 5.25;
int i = (int) d;
Commentari (4)
Soluzione

Un Double non è un Integer, quindi il cast non funzionerà. Nota la differenza tra la classe di Double e il primitivo di double. Nota anche che un Double è un Number, quindi ha il metodo intValue, che puoi usare per ottenere il valore come un int primitivo.

Commentari (6)

Double e Integer sono classi wrapper per le primitive Java per double e int rispettivamente. Potete fare il cast tra queste, ma perderete la virgola mobile. Cioè, 5.4 lanciato in un int sarà 5. Se lo rifate, sarà 5.0.

Commentari (0)