不同类型的数字进行运算的时候,系统会强制改变数据类型,例如下面的代码:
【例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