変数と演算子
型変換
変数には型があるということはご理解いただけたと思います。さて、数字と一言に言っても、整数や小数があります。整数の型には「int」「short」「long」、少数の型には「double」「float」があります。
プログラム内で計算をさせる場合、整数同士の計算である場合には、自動的に答えも整数となってしまいます。たとえば、「short a = 5;」「short b = 2;」のときに「a / b」を単純に計算すると結果は「2」が返ってきます。
整数値として答えが欲しければこれでも問題ありませんが、「2.5」という答えが欲しい場合には型変換をして小数を扱えるようにしなくてはいけません。小数の答えを格納するためには、まず答えを格納する変数をdouble型などの型で宣言する必要があります。
short a = 5;
short b = 2;
double ans = 0;
ans = a / b;
しかし、これではansに代入される値は「2」となってしまいます。小数の答えを求めたい場合には、計算する段階で「小数を扱うよ」ということを示してやる必要があるのです。
short a = 5;
short b = 2;
double ans = 0;
ans = (double)a / b;
こうすることによって、変数ansには「2.5」が代入されることになります。
もちろん整数から小数だけでなく、long型をshort型に変換することなども出来ますが、long型のほうが扱える数値の範囲が大きいため、溢れた場合には上位ビットの情報が切り捨てあっれるため正しい値にならないことがあります。
基本的に演算を行なう場合には同じ型として扱う必要があるため、プログラムに記述がなくてもコンパイル時に自動的に制度が高いほうの型に合わせられて計算されます。