簡體   English   中英

從Java原始int轉換為double

[英]Casting from Java primitive int to double

如果我打電話

methodName(5, 1/2);

它有簽名

public static int methodName(int x, double y){
}

methodName接收值為00.5 y

int y = 1/2;

此時,y為0.如果您嘗試將其轉換為雙精度則為0.0。 它不記得它是如何獲得它的價值的,它的價值是什么。

編輯:我認為編譯器實際上會在編譯時將1/2替換為0。 使代碼與int y = 0完全相同

它將評估為0。

使用上面的代碼你可以做很多事情。

應該沒有具體的理由將y存儲為int。

試試這個:

double y = 1/2.0;
int y = 1/2;

在此代碼中,y將為0;

如果你想得到0.5

嘗試使用以下代碼:

double y = 1.0 * 1 /2; //y is 0.5
int y = 1/2

由於您使用1(int)和2(int)進行除法,因此它是整數除法,因此y = 0 (余數(%)為1)。

我認為你對參數(括號)感到困惑。 在java中,每個方法都有一組參數(它們可能不包含ex:exampleMethod())。

參數是傳遞給方法的變量,因此在代碼中調用時:

methodName() initialize it with methodName(x,y);

方法中的x和y只是指向通過參數的值的指針。 我建議您以不同的方式命名變量,以避免這種混淆。 例如:

int x;
int y;
methodName(int argX, double argY)
{

}

同樣為了回答你的問題,int在小數點處切斷了它的存儲值,所以5.9會舍入到5而不是6,所以如果你需要y的浮點變量,要么將它聲明為float或double,要么將工作,但java庫中的大多數方法都是為了將​​雙精度作為參數而不是浮點數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM