Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Double is not converting to an int

This code I have written to convert double into int getting an exception.

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Cannot cast from Double to int

This is my code

Double d = 10.9;    
int i = (int)(d);
like image 694
Mayank Pratap Avatar asked Dec 30 '12 05:12

Mayank Pratap


2 Answers

Double is a wrapper class on top of the primitive double. It can be cast to double, but it cannot be cast to int directly.

If you use double instead of Double, it will compile:

double d = 10.9;    
int i = (int)(d); 

You can also add a cast to double in the middle, like this:

int i = (int)((double)d); 
like image 57
Sergey Kalinichenko Avatar answered Sep 22 '22 20:09

Sergey Kalinichenko


thats because you cant mix unboxing (converting your Double to a double primitive) and casting. try

int i = (int)(d.doubleValue());
like image 42
radai Avatar answered Sep 20 '22 20:09

radai