有办法将java.lang.Double转换为java.lang.Integer吗?

它会抛出一个异常

" . lang。ClassCastException: java.lang.Double不兼容java.lang.Integer"


当前回答

你需要使用方法intValue()像这样显式地获取int值:

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

Or

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

其他回答

这对我很有效。试试这个:

double od = Double.parseDouble("1.15");
int oi = (int) od;

首先你应该用双份而不是双份。

例子

int intResult = newDoubleObj.intValue();

内存效率高,因为它将共享已经创建的Double实例。

Double.valueOf(Math.floor(54644546464/60*60*24*365)).intValue()

你可以使用“缩小或显式类型转换”来做到这一点, Double→long→int。我希望它能起作用。

double d = 100.04;
long l = (long)d; // Explicit type casting required
int i = (int)l;    // Explicit type casting required

PS:它会给出0,因为double有所有的十进制值,左边什么都没有。如果是0.58,它将把范围缩小到0。但对其他人来说,它会产生魔力。

是这样的:

Double foo = 123.456;
Integer bar = foo.intValue();