- 締切済み
double型からint型へのキャストについて
お世話になります。 掲題の疑問がわきましたので質問させてください。 Ex1. int a = 100; a /= 1.05; Ex2 int a = 100; a = 100 / 1.05; この場合、Ex1は問題なく、Ex2でエラーが発生します。 Ex2でdouble型からint型へキャストできないということは納得できるのですが、逆になぜEx1が問題なく行えるのでしょうか、、 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- chomakichi
- ベストアンサー率57% (22/38)
回答No.2
具体的には、、、 コンパイラによって「a /= 1.05;」は 「a = (int)((double)a / 1.05D);」というようなロジックに直されるようですよ。
- Apr2nd
- ベストアンサー率69% (36/52)
回答No.1
+=, -=, *=, /= などの複合代入演算子は演算時に暗黙の型変換が 行われるためにエラーにはなりません