キャストしたい場合 ( 変換したい型 )変数名; 代入する時にキャストしたい場合 代入元の変数名 = ( 代入元の変数の型 )代入したい変数名; |
int a = 12; byte b = a; //ナローイング変換をしているのでコンパイルエラーが発生する byte c = (byte)a; //byte型にキャストしているのでコンパイルエラーは発生しない
int a = 1234567890; float b = a; //ワイドニング変換2行目の代入はワイドニング変換のためコンパイルエラーは起こらない。
int c = a - (int)b; //この時点でbの値が1234567936になってしまう。本来は同じ数を引いているためcを出力すると0であるはずだが、bをint型に変換した時点でbの値が1234567936になってしまう。
int A = 5; int B = 2; double c = (double) A / B;Aがdouble型にキャストされ、int型ではなくdouble型で演算結果を得ることができる。
【注意】キャストを行ったからといって、代入元の変数の型が変わるわけではない。
double a = 12.12345; int c = (int)a;aをint型に一時的にキャストしているが、実際にaの値がint型になるわけではなく、aを出力すれば12.12345であり、cを出力すると12となる。