Giet Dubbel naar geheel getal in Java

Is er een manier om java.lang.Double te casten naar java.lang.Integer?

Het werpt een uitzondering

"java.lang.ClassCastException: java.lang.Double incompatible with java.lang.Integer"

Je moet de int waarde expliciet opvragen met de methode intValue() zoals dit:

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

Of

double d = 5.25;
int i = (int) d;
Commentaren (4)
Oplossing

Een Double is geen Integer, dus de cast zal niet werken. Let op het verschil tussen de Double klasse en de Double primitief. Merk ook op dat een Double een Number is, dus het heeft de methode intValue, die je kunt gebruiken om de waarde als een primitieve int te krijgen.

Commentaren (6)

Double en Integer zijn wrapper classes voor Java primitieven voor respectievelijk double en int. Je kunt ertussen casten, maar dan verlies je de drijvende komma. Dat wil zeggen, 5.4 gegoten naar een int zal 5 zijn. Als je het terug cast, wordt het 5.0.

Commentaren (0)