數值類型之間的轉換
數值類型之間的轉換,在小數值往大數值轉換時,不會發生精度的損失。在小數值往大數值轉換時有可能發生精度的損失。
比如byte最大值也只有127,如果一個大於127的int類型數據往byte轉換肯定是不行的,但是往long類型轉換就完全沒問題了。
在我們進行一些兩種不同數值類型之間的數值運算時,先要將兩個操作數轉換為同一種類型,然后再計算。
具體轉換為那種類型,得看他們的取值。
可以參考https://www.cnblogs.com/lbhym/p/11122716.html
如下圖。實心箭頭表示無信息丟失,虛線代表有可能有精度損失。
注:《Java核心技術 卷1》
強制類型轉換
除了Java自己會進行類型轉換。比如int+double,系統會把結果轉換為double。
我們有時候需要手動轉換一些類型。
語法如下:
double x=9.997; int nx=(int) x;
只需要在前面加個小括號,小括號里面寫上目標類型就行。
最后nx=9。
如果你需要舍入,可以用Math.round方法
double x=9.997; int nx=(int)Math.round(x);
nx=10;
這里注意,round方法返回的是long類型數據,所以你還是只需要int類型數據時,需要再強轉一下。