Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

*=などの算術代入演算子は、暗黙の型変換を行うもの?

質問なんですが、

int a = 1;
a *= 0.05;

のようなコードを書いたのですが、コンパイル
を通ってしまいます。

「a *= 0.05 」
の部分は、
「a = a * 0.05;」

と同じだと思ってたのですが、下のコードに
するとコンパイルは通らず、勉強したとおりに
なります。

a はint型で、0.05はDoubleのリテラル値なので
計算すると、右辺はDouble型になるので、
左辺のint型変数aには代入できない

と思ってたのですが、なぜ*=だと
うまくいくのでしょうか?

教えてください。

0

回答

2238

閲覧

0件の回答

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。