一.前言:
数字进行运算时,数据类型不一样不能运算,需要转成一样的,才能运算
二.取值范围
byte-------->short--------------->int------------->long------------------>float----------->double
三.隐式转换
1.概念
把取值范围小的数值转换成取值范围大的数值
2.实现
不需要自己写代码,自动完成转换。
(1)例子:
int a=10;
double b=a;
10.0
3.隐式转换的两种提升规则
(1)取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。
(2)byte short char 三种类型的数据在运算的时候,都会先提升为int,再进行运算。
案例1:
public class Main {
public static void main(String[] args) {
int a = 10;
double b = 12.3;
System.out.println(a + b); //22.3
}
}
根据转换的规则可以知道将int类型转换成double类型。
案例2:
public class Main {
public static void main(String[] args) {
byte a = 10;
byte b = 20;
System.out.println(a + b);
}
}
四.强制转换
1.概念
如果把一个取值范围大的数值,赋值给取值范围小的变量。
格式:
目标数据类型 变量名=(目标数据类型)被强转的类型;
2.范例:
double a=12.3;
int b =(int) a;//12
byte b1 = 10;
byte b2 = 20;
byte result = (byte) (b1 + b2);
System.out.println(result);//30
没用问题。
byte b1 = 100;
byte b2 = 100;
byte result = (byte) (b1 + b2);
System.out.println(result);//56
换成数值大的时候,结果是-56,超出了取值的范围。