Untitled Web Page

とある高専生の割と誰得なウェブページです。

型変換

char 型(文字型)から int 型,float 型や double 型(浮動小数点型)から int 型(整数型)など,値の型を一時的に変更することを型変換(キャスト)という。

暗黙の型変換

たとえば次のように書くと自動的に型変換される(暗黙の型変換)。

int n = 531;
double d;
d = n; /* n の値が double 型に変換されて 531.0 が代入される */

double e = 2.71828183;
int n;
n = e; /* e の値が int 型に変換(小数点以下が切り捨てられる)されて 2 が代入される */

このように,int 型(整数)から double 型(小数)への変換は何の問題もなく変換される。しかし,double 型(小数)から int 型(整数)への変換は,int 型では小数を表せないため小数点以下が切り捨てられる。

明示的な型変換

以下のように (型名)変数名 と書くことで明示的に型変換させることもできる。(型名)キャスト演算子という。

double d = 11.56;
int n = (int)d; /* 浮動小数点型を int 型に変換(小数点以下は切り捨てられる) */

C 言語では,1 つの式に複数の型が混在している場合,式中に現れる型の中で最も精度の高い型に変換される。なお,char, int, float, double の順に精度が高い。

int a=5, b=3;
printf("%f\n", a/b); /* int型/int型の計算結果はint型 */
printf("%f\n", (double)a/b); /* double型/int型の計算結果はdouble型 */

1.000000
1.666667