自动类型转换
定义:
自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。这里的容量大小比的不是字节数,比如long类型的值可以自动转化成float类型的值,因为float表示的范围更大,只是转化时会有精度损失,所以float a=31L是可以的。long d=3.1会报错,因为3.1默认为double类型,表示的范围比long更大,改成3.1F也不行。
种类:
byte->short->int->long自动类型转换时无数据丢失
char->int自动类型转换时无数据丢失
int->double自动类型转换时无数据丢失
float->double自动类型转换时无数据丢失
int->float在转换时可能会有精度的损失。
long->float在转换时可能会有精度的损失。
long->double在转换时可能会有精度的损失。
注意:
可以将整型常量直接赋值给byte、 short、 char等类型变量,而不需要进行强制类型转换,编译器帮我们进行转换,只要不超出他们的表示范围即可。
short b = 12; //合法
short b = 1234567;//非法,1234567超出了short的表示范围