类型转换须知

不同类型的数字进行运算的时候,系统会强制改变数据类型,例如下面的代码:
【例2
// TypeConvert.java
public class TypeConvert {
 public static void main(String[] args) {
      byte b1 = 3;
      byte b2 = 4;
      byte b3=b1+b2;
 }
}
在编译的时候会报下面的错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
 Type mismatch: cannot convert from int to byte
 at TypeConvert.main(TypeConvert.java:6)
原因在于执行b1+b2 的时候,系统会把b1 b2 的类型都转换成int 类型然后计算,计算的结果也是int 类型,所以把int 类型赋值给byte 类型,这时候就产生错误了。
类型转换的基本规则如下:
     操作数中如果有double 类型,则都会转换成double 类型。
     如果有float 类型,则会转换成float 类型。
     如果有long 类型,则会转换成long 类型。
     其他的都会转换成int 类型。
如何解决上面的错误呢?可以参考下面的代码:
【例3
// TypeConvert2.java
public class TypeConvert2 {
 public static void main(String[] args) {
      byte b1 = 3;
      byte b2 = 4;
      // 对计算结果进行强制转换
      byte b3 = (byte)(b1+b2);
 }
}

                                                             摘自:http://student.csdn.net/space.php?uid=124362&do=blog&id=14970

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值