【Java】データ型をキャスト(変換)して値を代入する

■データ型のキャスト

基本的に異なるデータ型どうしでは値を代入することはできない。

▼例: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@
65A
66B
67C
68D

コメント