■データ型のキャスト
基本的に異なるデータ型どうしでは値を代入することはできない。
▼例:double型の値を計算し、結果をint型に格納する。
// double型の変数を格納
double a = 100.0;
double b = 30.0;
int ans = a / b;
System.out.println("計算結果:" + ans);
▼実行結果
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
型の不一致: double から int には変換できません
上記のエラーを回避するためには、「(データ型)値」という表記を明示的に行い、
データ型をキャスト(変換)する。
▼データ型のキャスト方法
// 変数宣言
データ型名1 変数名 = 値;
// データ型名1からデータ型名2にキャストする
データ型名2 変数名 = (キャストするデータ型名)変数名;
■サンプルコード
public class Sample{
public static void main(String[] args) {
// double型の変数を格納
double a = 100.0;
double b = 30.0;
// 計算結果をint型にキャスト(変換して)格納
int ans = (int)(a / b);
System.out.println("計算結果:" + ans);
// int型の整数をchar型にキャスト
int num = 65;
char moji = (char)num;
System.out.println("変換結果:" + moji);
}
}
■実行結果
計算結果:3
変換結果:A
▼実行結果の補足
①Double型をint型に変換した場合、100 ÷ 30 = 3.333333……となるところが、
整数値の3のみが格納される
②int型の65をchar型にキャストすると、65という値ではなく、文字コード「65」と判別される。
したがって、文字コード「65」はAであるため、出力結果はAとなる。
▼参考:ASCII文字コード
10進数文字コード | 文字 |
---|---|
64 | @ |
65 | A |
66 | B |
67 | C |
68 | D |
コメント