我知道精度损失错误的出现是因为:非强制性,将一个“高精度”的值,赋值给一个“低精度”的变量。
以下我列出了4种情况:
(有精度损失错误,我简写为‘有’,否则写‘无)
情况1:
short a = 1;
a = a + 2;//有
情况2:
short a = 1;
short b = a + 1;//有
情况3:
short a = 1;
a += 2;//无
情况4:
short a = 2 + 1;//无
------解决方案--------------------
short a = 1;
a += 2;//无
等同于
short a = 1;
a = (short)(a+2);
即跟你的情况4是等同的
------解决方案--------------------