2つの値の積がにint
収まらないためint
、それをに格納する場合、各オペランドの前(または少なくとも1つのオペランドの前)にlong
明示的なキャストを指定する必要がありますか?long
または、キャストがない場合でも、コンパイラはそれを正しく処理しますか?
これは明示的なコードになります。
public final int baseDistance = (GameCenter.BLOCKSIZE * 3/2);
long baseDistanceSquare = (long)baseDistance * (long)baseDistance;
または、以下のコードで十分ですか?
long baseDistanceSquare = baseDistance * baseDistance;