Javaにおける異なる型同士の演算結果を
よく忘れがちなのでメモメモ、、、
ソースコード
public class Check { public static void main( String args[] ) { Object obj; // 一番目 obj = 10 / 3; System.out.println( "int / int = " + obj.getClass().getSimpleName() ); System.out.println( "Answer : " + obj ); // 二番目 obj = 10.0d / 3; System.out.println( "double / int = " + obj.getClass().getSimpleName() ); System.out.println( "Answer : " + obj ); // 三番目 obj = 10 / 3.0d; System.out.println( "int / double = " + obj.getClass().getSimpleName() ); System.out.println( "Answer : " + obj ); // 四番目 obj = 10.0d / 3.0d; System.out.println( "double / double = " + obj.getClass().getSimpleName() ); System.out.println( "Answer : " + obj ); // 五番目 obj = 10L / 3.0; System.out.println( "Long / double = " + obj.getClass().getSimpleName() ); System.out.println( "Answer : " + obj ); } }
解説
上から順に解説します。
No1(一番目)
int型同士の演算結果は
当たり前の如くint型になります
No2(二番目)
No3(三番目)
double型とint型の演算結果は
doubleにアップキャストされます
No4(四番目)
double型同士の演算結果は
当たり前の如くdouble型になります
No5(五番目)
long型とint型の演算結果は
longにアップキャストされます