数字类型可以有数据类型上的转换,即将一种类型的值赋值给另外一种类型的变量。但要依据数据范围,符合一定规则:
各种数据类型按照数据范围从小到大:
byte -> short -> int -> long -> float -> double
char->
范围小的数据类型值(如int),可以自动转换为范围大的数据类型值(如double)
范围大的数据类型 变量 = 范围小的数据类型值;
如:
double d = 1000;
或
int i = 100;
double d2 = i;
/*
数字类型转换:就是数值转换,包括整数,小数,字符
自动类型转换:小-->大
byte < short(char)< int < long < float < double
格式:范围大的数据类型 变量名 = 范围小的数据类型的值;
*/
public class VarDemo07{
public static void main(String[] args){
//自动类型转换 int --> double
int i = 100;
double d = i;
System.out.println("i="+i);
System.out.println("d="+d);
}
}
运行结果:
范围大的数据类型值(如double),不可以自动转换为范围小的数据类型值(如int),但是可以强制转换
范围小的数据类型 变量 = (范围小的数据类型) 范围大的数据类型值;
如:
int i = (int)6.718; //i的值为6
或
double d = 3.14;
int i2 = (int)d; //i2的值为3
/*
数字类型转换:就是数值转换,包括整数,小数,字符
强制类型转换:大-->小
格式:范围小的数据类型 变量名 = (范围小的数据类型)范围大的数据类型的值;
*/
public class VarDemo08{
public static void main(String[] args){
//强制类型转换
double d2 = 3.14;
//int i2 = d2;//错误: 可能损失精度
int i2 = (int)d2;
System.out.println("i2="+i2);
System.out.println("d2="+d2);
}
}
运行结果: