型態轉換(Type Casting)


Posted by Liang on 2021-12-16

資料型態的轉換方式

自動轉型

Java會自動將空間小的型態轉成空間大的型態
如:整數(int)->浮點數(float或double),字元(char)->整數(int)
自動轉型的順序:
byte -> short -> char -> int -> long -> float -> double
boolean不是數值型態,所以無法跟上面這些數值型態做轉換
char比較特別因為可以找到對應的Unicode代碼值

//整數轉浮點
int a = 3;
double b = a;
float f = a;
System.out.println("a = "+a);
System.out.println("b = "+b);
System.out.println("f = "+f);

//字元轉整數
char c = 'i';
a = c;
System.out.println("a = "+a);

輸出結果:
a = 3
b = 3.0
f = 3.0
x = 105 (i這個字元對應到unicode的值)

強制轉型

如要將空間大的型態轉小空間型態,則必須使用強制轉型,否則IDE會報錯,此外大轉小可能造成會遺失部分資料或是錯誤

double b = 123.456;
int a = b; //未強制轉型,此時IDE會報錯

正確為

double b = 123.456;
int a = (int)b; //用(型態)強制將變數b轉型
System.out.println("a = " + a);

int i = 19954;
byte c = (byte)i;
System.out.println("c = " + c);

輸出結果:
a = 123 浮點轉整數會無條件捨去至整數位
c = -14 byte的數值範圍-128~127
強制將超過此範圍的i轉成byte,所以印出來的值會是錯的










Related Posts

AI輔導室|製作日式繩圈

AI輔導室|製作日式繩圈

ES6 的 export 與 import

ES6 的 export 與 import

text CSS

text CSS


Comments