关于转换的初级问题
short a=1;
a=a+1;
时会出现损失精度的错误,但a+=1就不会,哪位给俺解释一下他们的区别呗,同学给我说的是地址引用的原因但 我还是不太明白,请详细的说一下呗
[解决办法]
short a=1; a=a+1;
[解决办法]
假如表达式是 E1 op= E2 这种样子的(op是运算符,E1、E2是操作数),
实际上内部是这样做的 E1 = (T)((E1) op (E2)),其中 T 表示 E1 的类型。
比如:
short x = 3;
x += 4.6;
内部是这样工作的:
short x = 3;
x = (short)(x + 4.6);
这里面还有很多细节问题,具体详见 Java Language Specification §15.26.2
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.26.2