一:基本型別
數值型別:byte(8位)、short(16位)、int(32位)、long(64位)取值範圍為-2的n-2次方~2的n-2次方-1(n為位數,去掉一個符號位)
浮點型別:float(32位,單精度)、double(64位,雙精度) JAVA中將小數預設為double型別,若要定義float需在資料後面用f宣告
字元型別:char(16位,unicode字元)
布林型別:boolean(8位,true/false)
二:資料型別間的轉換
基本的資料型別由低階到高階分別為:(byte、short、char)——int——long——float——double
1)低階到高階的自動型別轉換;
2)高階到低階的強制型別轉換(會導致溢位或丟失精度);
3)基本型別向類型別轉換;
4)基本型別向字串的轉換;X.toString X+"" String.valueOf(X)
5)類型別向字串轉換;
三 :基本資料型別之間的轉換規則
1)只要兩個運算元中有一個是double型別的,另一個將會被轉換成double型別,並且結果也是double型別;
2)只要兩個運算元中有一個是float型別的,另一個將會被轉換成float型別,並且結果也是float型別;
3)只要兩個運算元中有一個是long型別的,另一個將會被轉換成long型別,並且結果也是long型別;
4)兩個運算元(包括byte、short、int、char)都將會被轉換成int型別,並且結果也是int型別。
四:二進位制小數的表示
在計算機底層,小數點之後的小數也是用二進位制表示的,如:1/2,1/4,1/8等,所以無法用二進位制表示那些double,float數
由此引出了BigDecimal這個類
構造器可以public BigDecimal(double val)或public BigDecimal(String val)通常才用這種
所以對於double型別的,我們可以這樣
BigDecimal a=new BigDecimal(Double.toString(4.5));
BigDecimal a=new BigDecimal(Double.toString(1.5));
記得兩個數都要轉成BigDecimal物件,然後進行加減乘除運算
a.add(b) a加b b.add(a) b加a
a.add(b) a除以b b.add(a) b除以a
a.substract(b)a減b b.substract(a) b減a
a.multiply(b)a乘以b b.multiply(a) b乘以a
一:基本型別
數值型別:byte(8位)、short(16位)、int(32位)、long(64位)取值範圍為-2的n-2次方~2的n-2次方-1(n為位數,去掉一個符號位)
浮點型別:float(32位,單精度)、double(64位,雙精度) JAVA中將小數預設為double型別,若要定義float需在資料後面用f宣告
字元型別:char(16位,unicode字元)
布林型別:boolean(8位,true/false)
二:資料型別間的轉換
基本的資料型別由低階到高階分別為:(byte、short、char)——int——long——float——double
1)低階到高階的自動型別轉換;
2)高階到低階的強制型別轉換(會導致溢位或丟失精度);
3)基本型別向類型別轉換;
4)基本型別向字串的轉換;X.toString X+"" String.valueOf(X)
5)類型別向字串轉換;
三 :基本資料型別之間的轉換規則
1)只要兩個運算元中有一個是double型別的,另一個將會被轉換成double型別,並且結果也是double型別;
2)只要兩個運算元中有一個是float型別的,另一個將會被轉換成float型別,並且結果也是float型別;
3)只要兩個運算元中有一個是long型別的,另一個將會被轉換成long型別,並且結果也是long型別;
4)兩個運算元(包括byte、short、int、char)都將會被轉換成int型別,並且結果也是int型別。
四:二進位制小數的表示
在計算機底層,小數點之後的小數也是用二進位制表示的,如:1/2,1/4,1/8等,所以無法用二進位制表示那些double,float數
由此引出了BigDecimal這個類
構造器可以public BigDecimal(double val)或public BigDecimal(String val)通常才用這種
所以對於double型別的,我們可以這樣
BigDecimal a=new BigDecimal(Double.toString(4.5));
BigDecimal a=new BigDecimal(Double.toString(1.5));
記得兩個數都要轉成BigDecimal物件,然後進行加減乘除運算
a.add(b) a加b b.add(a) b加a
a.add(b) a除以b b.add(a) b除以a
a.substract(b)a減b b.substract(a) b減a
a.multiply(b)a乘以b b.multiply(a) b乘以a