Javaの型変換と演算:doubleからintへのキャストと比較演算子の解説

Java

Javaでは、異なる型の変数を組み合わせて演算する際にキャスト(型変換)を行うことがあります。今回は、以下のコードを通して、その動作と理屈を解説します。

1. コードの解説

質問にあるコードは、double num1 = 12.5, num2 = 30.0;という2つの変数から始まります。次に、int num = (int)(num1 + 17.5);という処理が行われ、最終的にSystem.out.println(num >= num2);という式が評価されます。このコードの各部分を順番に解説します。

2. 変数とキャスト

最初にnum1num2はそれぞれ12.530.0というdouble型の値を持っています。double型は小数点以下を含む浮動小数点数を扱います。

次に、num1 + 17.5が計算されます。この結果は12.5 + 17.5 = 30.0となり、30.0というdouble型の値が得られます。しかし、この結果はint型のnumに代入されるため、(int)によるキャスト(型変換)が行われます。この時、30.0の小数点以下は切り捨てられ、整数部分だけがnumに代入されます。最終的にnum = 30となります。

3. 比較演算子の評価

次に、System.out.println(num >= num2);が実行されます。この式はnumnum2より大きいか等しいかを比較するものです。現在、num = 30num2 = 30.0となっており、num2double型ですが、numint型です。

Javaでは異なる型の値を比較する場合、自動的に型が一致するように変換されます。この場合、int型のnumdouble型に変換され、30 >= 30.0となり、結果は「true」になります。

4. まとめとポイント

このコードでは、型変換(キャスト)と比較演算子の使い方について学びました。double型からint型へのキャストによって、小数点以下が切り捨てられ、最終的な比較では型が自動的に調整されます。これにより、intdoubleの比較が正しく行われ、結果が得られました。

コメント

タイトルとURLをコピーしました