Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何直接将Double转换为int?_Java - Fatal编程技术网

Java 如何直接将Double转换为int?

Java 如何直接将Double转换为int?,java,Java,也许这是个愚蠢的问题。我想去掉双倍数的小数部分。但我不能那样做。它显示了不兼容类型导致的错误。怎么办 Double to int在一行中转换…请帮助,谢谢尝试转换值 double d = 1.2345; long l = (long) d; 如果您真的应该使用Double而不是Double,您甚至可以通过调用以下命令获得Double的int值: Double d = new Double(1.23); int i = d.intValue(); 除此之外,Peter Lawrey的答案已经描

也许这是个愚蠢的问题。我想去掉双倍数的小数部分。但我不能那样做。它显示了不兼容类型导致的错误。怎么办

Double to int
在一行中转换…请帮助,谢谢

尝试转换值

double d = 1.2345;
long l = (long) d;

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

Double d = new Double(1.23);
int i = d.intValue();

除此之外,Peter Lawrey的答案已经描述过了。

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

您可以使用
Math.round(double)
函数或只需执行以下操作:

(int)(yourDoubleValue + 0.5d)

结果是:myInt=12

不,它不是双倍的,它是一个
双倍的
数字。这就是我认为它显示错误的原因。阅读Double类的文档怎么样?我确信有某种方法可以进行转换。您所说的是由于不兼容的类型而导致的错误。然后,通常最好显示您尝试过的代码片段。这有助于给出更好的答案。@Ingo我在谷歌上搜索过,并尽了最大努力,只有我做到了这一点。谢谢你们的帮助:)对不起,伙计们。我试过谷歌,发现只有双精度到整数。然后我来打扰我们这里的朋友:)行了。许多感谢这在循环中是一个非常糟糕的主意。使用原语要好得多。为什么我这样做,它会给我一个错误
double不能被解除引用
?很可能您使用的是原语类型double而不是double,但您可能希望在自己的问题中提出这一问题,以提供更多的上下文。Math.ceil或Math.floor是可选的。Daneos问题是关于将
Double
转换为
int
。不
double
int
。还值得注意的是,2.999999999997变为2,这在大多数情况下是不需要的。
int average_in_int = ( (Double) Math.ceil( sum/count ) ).intValue();
double myDb = 12.3;
int myInt = (int) myDb;