ゆるゆるプログラミング

・型キャスト

型キャストとは、データの型を変換することです。例えば、int型変数の値をdouble型に代入したり、float型変数の値をshort型に代入することです。型が一致していないデータ同士で演算させようとすると、コンパイルエラーになったり、計算結果が不正な値になることがあります。型キャストを行い同じ型のデータにすることで、これらの不具合を防ぐことができます。

型キャストには、暗黙的な型キャスト明示的な型キャストの2つがあり、その2つの違いは、変換する変数型を指定するか指定しないかです。暗黙的な型キャストは、プログラマーが変換後の変数型を指定する必要がなく、情報量の少ない変数型から情報量のが多い変数型に変換するものです。明示的な型キャストは、プログラマーが変換後の変数型を指定する方法で、情報量の多い変数型から情報量のが少ない数型に変換するものです。

■関連コンテンツ

変数について   Javaで扱う変数について解説

以下のJavaソースコードは、暗黙的な型キャストの例です。情報量の少ない変数型から情報量の多い変数型に値を変換しています。

TypeCasting1.java
001:    public class TypeCasting1 {
002:    	public static void main( String[] args ) {
003:    		// 変数を宣言
004:    		char   chrV;	// 16bit
005:    		byte   bytV;	// 8bit
006:    		short  shtV;	// 16bit
007:    		int    intV;	// 32bit
008:    		long   lngV;	// 64bit
009:    
010:    		float  fltV;	// 32bit
011:    		double dblV;	// 64bit
012:    
013:    
014:    		// 暗黙的な型キャスト
015:    
016:    		// char型を他の型に変換
017:    		chrV = 100;
018:    
019:    		intV = chrV;	// char型をint型に変換
020:    		lngV = chrV;	// char型をlong型に変換
021:    		fltV = chrV;	// char型をfloat型に変換
022:    		dblV = chrV;	// char型をdouble型に変換
023:    
024:    
025:    		// byte型を他の型に変換
026:    		bytV = 100;
027:    
028:    		shtV = bytV;	// byte型をshort型に変換
029:    		intV = bytV;	// byte型をint型に変換
030:    		lngV = bytV;	// byte型をlong型に変換
031:    		fltV = bytV;	// byte型をfloat型に変換
032:    		dblV = bytV;	// byte型をdouble型に変換
033:    
034:    
035:    		// short型を他の型に変換
036:    		shtV = 100;
037:    
038:    		intV = shtV;	// short型をint型に変換
039:    		lngV = shtV;	// short型をlong型に変換
040:    		fltV = shtV;	// short型をfloat型に変換
041:    		dblV = shtV;	// short型をdouble型に変換
042:    
043:    
044:    		// int型を他の型に変換
045:    		intV = 100;
046:    
047:    		lngV = intV;	// int型をlong型に変換
048:    		fltV = intV;	// int型をfloat型に変換
049:    		dblV = intV;	// int型をdouble型に変換
050:    
051:    
052:    		// long型を他の型に変換
053:    		lngV = 100;
054:    
055:    		fltV = lngV;	// long型をfloat型に変換
056:    		dblV = lngV;	// long型をdouble型に変換
057:    
058:    
059:    		// float型を他の型に変換
060:    		fltV = 100.0f;
061:    
062:    		dblV = fltV;	// float型をdouble型に変換
063:    	}
064:    }

以下のJavaソースコードは、明示的な型キャストの例です。情報量の多い変数型から情報量の少ない変数型に値を変換しています。代入する値の前に(変換後の変数型)を書くことで、指定の変数型に変換することができます。

TypeCasting2.java
001:    public class TypeCasting2 {
002:    	public static void main( String[] args ) {
003:    		// 変数を宣言
004:    		int    intV = 100;	// 32bit
005:    		long   lngV = 200;	// 32bit
006:    		float  fltV = 123.4f;	// 32bit
007:    		double dblV = 567.8;	// 64bit
008:    
009:    
010:    		// 明示的な型キャスト
011:    
012:    		// int型に変換
013:    		intV = (int)lngV;
014:    		intV = (int)fltV;
015:    		intV = (int)dblV;
016:    
017:    
018:    		// float型に変換
019:    		fltV = (float)lngV;
020:    		fltV = (float)dblV;
021:    	}
022:    }

この例では、int型float型への変換を書いています。

012:    		// int型に変換
013:    		intV = (int)lngV;
014:    		intV = (int)fltV;
015:    		intV = (int)dblV;

(int)変数名の前に書いて、int型に変換しています。

018:    		// float型に変換
019:    		fltV = (float)lngV;
020:    		fltV = (float)dblV;

(float)変数名の前に書いて、float型に変換しています。

■関連コンテンツ

変数について Javaで扱う変数について解説
型キャスト 変数の型を変換する方法について解説

■新着情報

2017.11.17 N値化 カラー画像をN値化する方法について解説
2017.11.16 最も近い値の取得 指定値に最も近い配列の値を取得する方法を解説
2017.10.02 アルファ値(透過) アルファ値(透過)について

■広告

法人向けのETC専用カード

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

Topへ