Cast Double to Integer in Java

Voiko java.lang.Double:n muuntaa java.lang.Integer:ksi?

Se heittää poikkeuksen

"java.lang.ClassCastException: java.lang.Double ei ole yhteensopiva java.lang.Integerin kanssa"

Sinun on nimenomaisesti saatava int-arvo käyttämällä metodia intValue() seuraavasti:

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

Tai

double d = 5.25;
int i = (int) d;
Kommentit (4)
Ratkaisu

Double ei ole Integer, joten cast ei toimi. Huomaa ero Double luokan ja double primitiivin välillä. Huomaa myös, että Double on Luku, joten sillä on metodi intValue, jota voit käyttää saadaksesi arvon primitiivisenä int:nä.

Kommentit (6)

Double ja Integer ovat Javan double- ja int-alkuisten luokkien kääreitä. Voit castata niiden välillä, mutta menetät liukuluvun. Toisin sanoen 5.4, joka on muunnettu int:ksi, on 5. Jos se heitetään takaisin, se on 5.0.

Kommentit (0)