如何将Double直接转换为int?

Sel*_*vin 85 java

可能这是一个愚蠢的问题.我想摆脱数字的小数部分Double.但我不能这样做.它显示了不兼容类型的错误.该怎么办?

Double to int 转换成一行....请帮助谢谢

cru*_*sam 182

如果你真的应该使用Double而不是double,你甚至可以通过调用获得int的值:

Double d = new Double(1.23);
int i = d.intValue();
Run Code Online (Sandbox Code Playgroud)

其他已经由Peter Lawreys回答的描述.


gip*_*ani 26

所有其他答案都是正确的,但请记住,如果你将double转换为int,你将丢失十进制值..所以2.9 double变为2 int.

你可以使用Math.round(double)函数或只是做:

(int)(yourDoubleValue + 0.5d)
Run Code Online (Sandbox Code Playgroud)

  • 另外值得注意的是,2.999999999999997 变成了 2,这在大多数情况下是不受欢迎的。 (2认同)

小智 24

double myDb = 12.3;
int myInt = (int) myDb;
Run Code Online (Sandbox Code Playgroud)

结果是:myInt = 12

  • Daneos的问题是将"Double"转换为"int".不是`double`到`int`. (4认同)

Pet*_*rey 11

尝试转换值

double d = 1.2345;
long l = (long) d;
Run Code Online (Sandbox Code Playgroud)