类型转换须知
来源:互联网 发布:网络聊天平台有哪些 编辑:程序博客网 时间:2024/05/22 06:51
不同类型的数字进行运算的时候,系统会强制改变数据类型,例如下面的代码:
【例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