1. 程式人生 > 其它 >Java強制型別轉換與四捨五入

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