我是新來的Java,我想知道爲什麼當你有雙10/4你得到2?爲了得到正確的答案,double是否必須有小數?謝謝。Java double x 10/4 = 2?
public class Super {
public static void main(String[] args){
double x = 10/4;
System.out.println(x);
}
}
我是新來的Java,我想知道爲什麼當你有雙10/4你得到2?爲了得到正確的答案,double是否必須有小數?謝謝。Java double x 10/4 = 2?
public class Super {
public static void main(String[] args){
double x = 10/4;
System.out.println(x);
}
}
在分配結果之前,您正在執行整數除法。整數除法結果爲int
,截斷結果爲2
。要強制浮點運算,並得到2.5
,使用double
文字:
double x = 10.0/4.0;
或投一至double
:
double x = (double) 10/4;
被替換爲:
double x = 10.0/4.0;
你用整數除以。你可以聲明那些爲下列方式增加一倍(或使用f
爲浮動):
double x = 10d/4d;
System.out.println(x);
雙總是以小數。所以它必須是
public class Super {
public static void main(String[] args){
double x = 10.0/4.0;
System.out.println(x);
}
}
整數除法。即使您將結果分配給double
,仍然會將兩個整數(10和4)分開,以獲得整數結果(實際結果的底線)。
你可以有一個解決這個問題或兩個操作數是浮點值,例如像這樣:
double x = 10.0/4;
或使用類型轉換:
double x = (double)10/4;
雙您需要使用以下內容
10d/4d
然後輸出將是2.5否則你只是會結束潛水兩個整數
'='的右側是一個整數表達式,它只有在計算後才轉換爲double。因此它將10/4計算爲整數2,然後將該數字轉換爲2。如果你希望它從一開始就是雙倍數,你必須寫
double x = 10.0/4.0;
只有不能被讀取爲整數的數字將被視爲double。甚至更簡單
double x = 2.5; // :-)
整數失敗...呃...整數除法... – Mysticial
所有答案的基礎原則是重要的。 Java表達式的值取決於操作數的類型和值。它不取決於結果將如何使用。 –