我很快就要參加考試了,我希望有人檢查我的解釋,爲什麼編譯器允許進行某些轉換,有些則不是。Java類型轉換示例
字節 - >短 - > INT - >長 - >浮動 - >雙
所以我總能投(unexplicitly)從小到從字節大即長的例子。但要朝這個方向發展< - 我必須明確說明類型轉換。到目前爲止這麼好,但考試中的問題仍然有點棘手。
int value1 = (double) 10;
不允許。 Eclipse說不能從double轉換爲int。但是不是10個整數已經?我真的不明白。
byte value2 = (int) 120.0;
允許。所以120.0被剪切爲120,然後是一個在一個字節範圍內的整數。但是例如下面的文件
byte value3 = (int) 33500.0;
是不允許的。因爲它不在一個字節的範圍內?
double value4 = (int) 13.2;
允許。 13.2被剪切爲13,這是一個整數。你總是可以從小到大分配。
int value = 10f;
不允許。因爲你不能從float轉換爲int,但是由於現在它被明確地轉換,所以
int value = (int) 10f
被允許。
double someValue = (int) 12.3;
允許,我猜。但是這並沒有多大意義,是嗎?由於12.3已經是一倍。
short v1 = (int) 42.0;
允許。但爲什麼??我以爲你不能進入這個方向。
謝謝!我對縮小原始轉換感到非常困惑。記住原始類型的範圍可能會有幫助,不是嗎? – k725xaa