Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 双精度到整数的转换_Java - Fatal编程技术网

Java 双精度到整数的转换

Java 双精度到整数的转换,java,Java,我的一个项目需要玩家使用getX和getY在坐标上移动,但是,我不知道如何将getX和getY从double转换为int,以便在绘图面板中播放它们 您希望将double转换为int,但您需要注意如何转换,因为如果您希望移动准确,您希望将x.5及以上的值向上舍入,将x.5以下的值向下舍入 施法总是向下取整,所以正确取整的一个好方法是在你施法到整数之前,在你所有的双打中加上.5 这里有几个例子 double = 1.1 int (double) = 1 double = 1.7 int (doub

我的一个项目需要玩家使用getX和getY在坐标上移动,但是,我不知道如何将getX和getY从double转换为int,以便在绘图面板中播放它们

您希望将double转换为int,但您需要注意如何转换,因为如果您希望移动准确,您希望将x.5及以上的值向上舍入,将x.5以下的值向下舍入

施法总是向下取整,所以正确取整的一个好方法是在你施法到整数之前,在你所有的双打中加上.5

这里有几个例子

double = 1.1
int (double) = 1

double = 1.7
int (double) = 1 \\ Note that we will likely want this to be 2
使用我们的方法,让我们看看这两个双打将如何铸造

double = 1.1
double + .5 = 1.6
int (double) = 1

double 1.7 = 1.7
double + .5 = 2.2
int (double) = 2

请注意,现在x.5以上的双打将被适当地四舍五入

仅强制转换为int将截断双精度。因此,在决定如何获取int之前,您需要指定您真正想要的结果。例如,如果double值为2.999,您希望int为2还是3

如果需要最接近的int(上面的3),那么使用Math.round(d),它返回一个long.

(int)foo.getX()或者你可以尝试各种容易找到的舍入方法之一。看看“双精度到整数”的问题,而不是“双精度到整数”的问题。前者回答了你的问题。后者回答了一个关于装箱原语的问题。