首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

损失精度,该怎么处理

2012-02-25 
损失精度我才开学JAVA,昨晚遇到一个问题,byte的范围最大是到127,可是当我编写如下代码bytea50byteb60b

损失精度
我才开学JAVA,昨晚遇到一个问题,byte的范围最大是到127,可是当我编写如下代码
byte   a   =   50;
byte   b   =   60;
byte   c   =   a   +   b;
System.out.println(c);
的时候,却报错损失精度,c的结果110按理说没有超出范围,如果把c改成int型,或者用byte   c   =   (byte)(a+b)则可以通过,这是为什么?敬请请不吝赐教。

[解决办法]
byte c = (byte) (a1 + b);
[解决办法]
这涉及到自动类型转换的问题
byte在相加的时候先就转化成int类型了

[解决办法]
byte i=1;
i=i+1;//有问题
i+=1;//ok

[解决办法]
byte char short 它们在运算时都会自动转化成int型,
如楼上所说的那种方法也可以+= 复合运算都行.

热点排行