<分区>
我在使用 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 变量。相反,它会默默地转换(并截断)结果。