実数と整数との間の型変換
実数の値を整数型の変数に代入したり,整数値を実数型の変数に代入したり
したいことがある.このような際に,型変換をおこなう必要がある.型変換に
は,暗黙(implicit)の型変換と明示的(explicit)な型変換の2種類がある.
- 明示的な型変換
- Java言語には「(型の名前)式」とすると,式の値を計算した上で指定し
た型に変換可能な場合は変換するという構文(キャスト演算子)が用意されてい
る.
- 暗黙の型変換
- 整数値を実数型の変数に代入する場合などは,明示的に指定しなくても
自動的に変換をおこなってくれる.これを暗黙の型変換と呼ぶ.
この例を見てみる.
class ConvTest{
public static void main(String[] args){
long i=0,j;
double f=-1.9,g;
// j=f; // この行を残すとコンパイルエラーが出る
j=(int)f; // 実数から整数への変換
g=i; // 整数から実数への暗黙の変換
g=(double)i; // 整数から実数への明示的な変換
System.out.println("j="+j+",g="+g); // 表示
}
}
実行してみると,
ca20121$ java ConvTest
j=-1,g=0.0
となる.実数から整数への変換としてまず思いつくのが四捨五入だが,Java言
語の実数から整数への変換は四捨五入ではない(実は0の方向への丸め)とわか
る.四捨五入(というか一番近い整数値に変換)をおこなたい場合は,
Math.rint(正確にはMathクラスのrintメソッド)を使って,
class ConvTest{
public static void main(String[] args){
long i=0,j;
double f=-1.9,g;
// j=f; // この行を残すとコンパイルエラーが出る
j=(int)Math.rint(f); // 一番近い整数値に変換
g=i; // 整数から実数への暗黙の変換
g=(double)i; // 整数から実数への明示的な変換
System.out.println("j="+j+",g="+g); // 表示
}
}
とする必要がある.
その他の制御文