2017-02-24 47 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將四捨五入正常。