2017-02-24 64 views
-4

我有一个项目需要玩家在使用getX和getY的坐标上移动,但是,我很困惑如何将getX和getY从double转换为int,所以我可以在绘图面板。双打转换为int

+2

'(INT)foo.getX();'或者你可以尝试容易发现各种取整的方法之一。 –

+0

看看“双倍到整数”的问题,不是“双倍到整数”的问题。前者回答你的问题。后者回答关于_boxed primitives_的问题。 –

回答

0

只需转换为int将截断double。因此,在决定如何获取int之前,您需要指定您真正想要的结果。例如,如果double值为2.999,那么是否希望int为2或3?

如果你想最接近INT(3段),然后使用Math.round(d),返回长。

0

你想投你的双为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 

使用我们的方法,让我们看看这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将四舍五入正常。