java += 演算子で予期しないことが発生しました。
どうやら、これはコンパイルされます:
int a = 0;
a += 3/2.0;
System.out.println(a); // outputs "1"
一方、これはそうではありません
int a = 0;
a = a + (3/2.0); // eclipse compiler error "Type mismatch: cannot convert from double to int"
System.out.println(a);
これは予想される動作ですか?+= 演算子が「タイプの不一致」を報告しないのは奇妙だと思います。これは、double を追加して double の結果が得られ、int 変数に割り当てられる「追加および代入」演算子であるためです。代わりに、暗黙のうちに結果をキャスト (および切り捨て) します。