我在使用 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);
这是预期的行为吗?我觉得奇怪的是 += 运算符没有报告“类型不匹配”,因为它是一个“添加和分配”运算符,您在其中添加一个双精度数,它给出双精度结果,然后分配给一个 int 变量。相反,它会默默地转换(并截断)结果。