在Java中的原始類型轉換中,以下代碼將顯示什麼內容?類型轉換int和double
float a = 1.11;
int b = a;
int c = (int)a;
System.out.println(a + " " + b + " " + c);
如果double是64位而int是32位,那麼double變量可以轉換爲int嗎?
在Java中的原始類型轉換中,以下代碼將顯示什麼內容?類型轉換int和double
float a = 1.11;
int b = a;
int c = (int)a;
System.out.println(a + " " + b + " " + c);
如果double是64位而int是32位,那麼double變量可以轉換爲int嗎?
要回答你最後一個有趣的問題(問題的其他部分最好由調試器回答),對於int來說太大的double將投射到最大可能的int中;類似地,對於一個int來說太小的double將投射到儘可能小的int。
http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#d5e4334參見
注意,一個int是用Java定義爲32個比特(永恆)和雙爲64位(永恆)。
這將編譯:
float a = 1.11f;
int b = (int) a;
int c = (int)a;
System.out.println(a + " " + b + " " + c);
float
,你應該在數值的結尾添加f
。float
,就像double
一樣,在不同的位大小的情況下不能被轉換成int
類型。google.com
找到這樣的答案。
_「以下代碼會顯示什麼?」_你爲什麼不試試自己?它不會顯示,因爲它不會編譯。 –
請問清楚你的問題 –
爲什麼不編譯? –