有1種情形是大轉小,以較大的資料型別轉換成較小的資料型別,必須在程式中指定,有風險,系統不會自動轉換,這種情形稱為強制轉型。
自動轉型(小到大) int -> long ->float ->double |
自動轉型就有點像,將小的箱子放到大的箱子,是不會有問題的,可以進行轉換。
強制轉型(大轉小) double -> float -> long -> int |
強制轉型就跟自動轉型相反,將大的箱子放到小的箱子,會有風險,這是要在程式中自行設定。
- 強制轉型語法:
(欲轉型之資料型別) 變數名稱 ; |
還有是整數型態在預設上是int型態,像這樣:
log a=100; 宣告變數(這行會有錯誤發生,因為整數預設是int型態,所以要進行轉換) 像這樣 log a=100L ; 或 log a= 100l ;要在值的後面加上L或l |
和浮點數在預設上是double型態,像這樣:
float a=0.99; 宣告變數(這行會有錯誤發生,因為浮點數預設是double型態,所以要進行轉換) 像這樣 float a=0.99F ; 或 float a=0.99 f ;要在值的後面加上F或f |
範例程式 |
- Ch1_8 .java
package chapter; public class Ch1_8 { public static void main(String[] args) { int a = 1; //變數宣告 double d; //變數宣告 d = a; //將a的值給d,d可以承接,因為d的資料範圍比a大 a = d; //將d的值給a,發生錯誤,因為a可以承接的範圍比b小 a = (int) d; //進行資料轉換 float c; //變數宣告 c = 2.5; //指定初始值,會發生錯誤,因為浮點數預設是double型態,float不能承接 //double的資料型態 c = (float) 2.5; //進行資料轉換 c = 3.5F; //進行資料轉換 } } |
沒有留言:
張貼留言