1. 程式人生 > >Java 7之基礎型別第1篇

Java 7之基礎型別第1篇

       public static double div(double v1,double v2) {
           return div(v1,v2,10);
       }
       /**
       * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale引數指定精度,以後的數字四捨五入。
       */
       public static double div(double v1,double v2,int scale){
           if(scale<0){
               throw new IllegalArgumentException("The scale must be a positive integer or zero");
           }
           BigDecimal b1 = new BigDecimal(Double.toString(v1));
           BigDecimal b2 = new BigDecimal(Double.toString(v2));
           return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
       }

3. 字元型別

   1) 字元型別是用''單引號括起來的單個字元,例如char c = 'w'; char a = '中',可以看到Java中的char型別是可以表示中文字元的;

   2) Java字符采用Unicode(全球語言統一編碼)編碼,每個字元佔兩個位元組,因而可用16進位制編碼形式表示,如:char c = '\u0061'

   3) Java中允許使用轉義字元'\'將其後面的字元轉換成其他含義, 如: char c = '\n';  //表示換行

 4.布林型別

   1) boolean型別的值只有兩種:true,false

   2) boolean型別不可以轉換為其他的資料型別,所以有過C語言程式設計基礎的人可能認為1也能在Java中表示為true,這是錯誤的。

在C語言中是不存在bool型別的,但是0可以表示假,任何的非0可以表示真,包括負數。

5.基本資料型別的轉換

   1) boolean不可以轉換為其他的資料型別

   2) 整數型,浮點型別,字元型是可以相互轉換的,轉換時遵守下面的原則:

    a. 容量小的型別自動轉換為大的型別,資料型別按容量大小排序為:

     byte, short, char < int < long <float < double

    b. byte, short, char 三種類型間不會相互轉換,他們三者在計算時,首先會轉換為int型別

    c. 容量大的型別在轉換為小的型別的時候,必須加上強制轉換符,此時可能造成精度降低或者溢位問題

    d. 有多種資料型別混合計算的時候,系統首先自動轉換為容量最大的那個型別再來繼續計算

    e. 實數型別預設為double型別,如, 1.2; 整數型別預設為int型別,如 1

如圖所示:


二、資料型別對應的包裝類