各オペランドの型が異なる場合、一番大きいサイズの型に変換する。ただし、int型より小さい型は、すべてint型に変換する。
算術演算時のプリミティブ型変換ルール
「 int型 < long型 < float型 < double型 」の不等式に基づき、一番大きいサイズの型に変換する。
int型より小さい型(byte型、short型、char型)は、すべてint型に変換する。
例
int型に自動変換する例
1 | byte型変数 + byte型変数 |
1 | byte型変数 + short型変数 |
1 | short型 + short型変数 |
float型に自動変換する例
1 | float型変数 + byte型 |
1 | float型変数 + int型 |
サンプル
SampleClass.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | package samplePackage; public class SampleClass { public static void main( String[] args ){ // byte型変数に「100」を代入。 byte $byte = 100; // short型変数に「100」を代入。 short $short = 100; // float型変数に「1.23」を代入。 float $float = 1.23F; // int型変数に、「byte型変数+short型変数」の計算結果を代入。 int $int = $byte + $short; System.out.println( "int型変数$intの値は、「" + $int + "」である。" ); // float型変数に、「float型変数+int型変数」の計算結果を代入。 float $floatB = $float + $int; System.out.println( "float型変数$floatBの値は、「" + $floatB + "」である。" ); } } |
実行結果
int型変数$intの値は、「200」である。
float型変数$floatBの値は、「201.23」である。
float型変数$floatBの値は、「201.23」である。