Java強制類型轉換與四舍五入


強制類型轉換

強制類型轉換的基本概念

在從范圍較小的值,賦值給范圍較大的變量的時候,Java解釋器會進行自動的類型轉換,例如:將int類型的值,賦值給double類型的變量。

但是將范圍較大的值賦值給,范圍較小的變量的時候,如果不進行強制類型轉換,Java解釋器會報錯,例如:將double類型的值賦值給int類型的變量。

強制類型轉換很可能造成信息的損失。

強制類型轉換的語法格式是:

int a1 = (int)3.1415926;

程序示例

public class FirstCode1 {
   public static void main(String[] args) {
       //java 自動類型轉換
       int a1 = 3;
       double b1 = a1;
       System.out.println("b1 = "+b1);
       System.out.println("a1 = "+a1);

       //java強制類型轉換
       double b2 = 3.1415926535;
       int a2 = (int)b2;
       System.out.println("b2 = "+b2);
       System.out.println("a2 = "+a2);
  }
}

運行結果

b1 = 3.0
a1 = 3
b2 = 3.1415926535
a2 = 3

四舍五入——round

round函數的基本概念

round函數可以對數值進行四舍五入的操作。

round方法返回的結果為long類型。

注意

如果試圖將一個數值從一種類型強制轉換成另一種類型,而又超出了目標類型的表示范圍,結果就會階段成一個完全不同的值。

不要將boolean類型與任何數值類型進行強制類型轉換,這樣可以防止一些常見的錯誤。只有極少數情況下才需要將布爾類型轉化成數值類型,這時可以用下列表達式:

b?1:0

程序示例

public class FirstCode1 {
   public static void main(String[] args) {
       //round函數的使用
       double a1 = 3.675;
       int a2 = (int)Math.round(a1);
       System.out.println("a2 = " + a2);

       //當強制類型轉換的結果超過目標類型的表示范圍時
       long b1 = 3681922L;
       byte b2 = (byte)b1;
       System.out.println("(byte)b2 = "+b2);

       //將布爾值轉化為數值
       boolean c1 = true;
       boolean c2 = false;
       int c3 = c1?1:0;
       int c4 = c2?1:0;

       System.out.println(c3);
       System.out.println(c4);
  }
}

運行結果

a2 = 4
(byte)b2 = -126
1
0




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM