有人可以解釋類型轉換是如何工作的:int y =(int)x; 謝謝java中的類型轉換:Integer和Double
public class typecast
{
public static void main(String [] args)
{
double x=10.5;
int y=(int) x;
System.out.println("x="+x);
System.out.println("y="+y);
}
}
有人可以解釋類型轉換是如何工作的:int y =(int)x; 謝謝java中的類型轉換:Integer和Double
public class typecast
{
public static void main(String [] args)
{
double x=10.5;
int y=(int) x;
System.out.println("x="+x);
System.out.println("y="+y);
}
}
類型轉換執行縮小類型轉換。確切的轉換取決於雙倍值,如下所示:
int
值的範圍內,則會向零調整。Integer.MIN_VALUE
或Integer.MAX_VALUE
。參考:JLS 5.1.3
注:「圓形向零」被定義爲如下:
「Java編程語言朝向零的浮點值轉換爲整數(當使用圓§5.1.3),在這種情況下,它的作用就像截斷數字一樣,捨棄尾數位。舍入到零時,其結果選擇格式的值最接近數值而不超過無限精度的結果「
更詳細的描述給你。謝謝斯蒂芬,我只是懶得去查看規格,並把它放到更技術更清潔的地方。 – Drizzt321
在這種特殊情況下,如果你嘗試採取雙重(變量x),併爲其分配的價值爲int(變量y)的代碼將無法編譯。所以你必須明確告訴編譯器將類型從double轉換爲int。當它這樣做時,在這種特殊情況下,我相信它會減少小數部分而不是四捨五入。我最後一點可能是錯的。
您是否嘗試打印'y'的值。你得到了什麼??你不明白的是什麼? –
你能解釋一下在這兩行中你覺得神祕嗎? – user1406062