1. 程式人生 > >Java中數值型別之間轉換的規則

Java中數值型別之間轉換的規則

在我們進行數值相關操作的時候,很多時候都會進行不同型別的相關操作:避免不了存在數值型別之間的轉換。

那java中數值型別轉換的規則是什麼呢?有些會不丟失精度轉換,而有些會丟失精度。

1.如果兩個運算元中有一個是double型別,另一個運算元就會轉換為double型別

2.否則,如果其中一個運算元是float型別,另一個運算元就會轉換為float型別

3. 否則,如果其中一個運算元為long型別,另一個運算元將會轉換為long型別

4.否則,兩個運算元都將被轉換為int型別。

由上面可以得出,在java數值型別轉換的時候,兩個運算元都會轉換為範圍比較大的那個運算元的型別。當範圍大的轉換為範圍比較小的數值型別將會存在精度丟失。

byte ——>short 不會丟失

short ——》int 不會丟失

char ——>int 不會丟失

int ——>long 不會丟失

int ——>double不會丟失

float——>不會丟失

int ——>float 會丟失精度

int ——>double 會丟失精度

long——>float會丟失精度

long——>double會丟失精度

當我們進行操作的時候,有時候需要將浮點型別轉換為整型,這樣的話就會使用到強制型別轉換。

double x = 9.17;

int i = (int) x;

System.out.println(i);

得到的結果將會是9,會截斷相關的小數點後面的數值。當我們需要進行舍入運算,可以使用Math.round()方法。