java的自动类型转换和强制类型转换
????在程序運行時,經常需要將一種數值類型進行轉換成另一種類型。下面給出了一個合法的轉換。
? ??數值之間的合法轉換
????
? ? 上圖中有6個實心箭頭,表示無信息丟失的轉換,有三個虛箭頭,表示可能有精度丟失的轉換。例如123456789是一個大整數,它所包含的整數比float類型所能表達的位數要多,當把這個整數轉換為float時,將會得到通道大小的結果,但會丟失精度!
????
? ?強制類型轉換
????在有的情況下,int類型的值將會自動的轉為double類型,但另一方面,有時候也需要將double轉為int類型。在java中,允許這種數值之間的轉換。當然,這樣會丟失一些信息。在這種情況下需要進行強制類型轉換(cast)實現這個操作,強制類型轉換的語法格式是在圓括號給出想要轉換的目標類型。后面緊跟待轉換的變量名。例如:
????double x = 9.91;
????int nx=(int)x;
????
????這樣,nx的值為9,強制類型轉換通過截斷小部分將浮點值轉為×××。
????如果想對浮點數進行四舍五入計算。以便得到最接近的整數。(在很多情況下,需要使用這種操作方式。),那就需要使用Math.round方法:
????double x = 9.91;
????int nx=(int)Math.round(x);
????現在,nx的值為10.當調用round的時候。仍然需要使用強制轉換(int)。其原因是round方法返回的結果是long類型,由于存在信息丟失的可能性。所以只有使用顯式的強制類型轉換才能將long類型轉換為int類型。
????
轉載于:https://blog.51cto.com/9497786/1752446
總結
以上是生活随笔為你收集整理的java的自动类型转换和强制类型转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2、Sprite,SpriteBatch
- 下一篇: 百度地图定位地址为空