Java的基本数据类型转换问题
Java的基本数据类型包括:
- 整型:byte, short, int , long
- 浮点型:float,double
- 字符型:char
- 布尔型:boolean
自动类型转换:
如果系统支持把某种基本类型的值直接赋给另一种基本类型的变量,则这种方式被称为“自动类型转换”。
在没有强转符的情况下,只能用范围大的数去接范围小的数,如图所示。
尝试byte转char/short
byte a = 1;
short b = a; //b =1
char c = a; //编译不通过
尝试char转byte/short
char a = 'a';
byte b = a; //编译不通过
short c = a; //编译不通过
char转int、short转int和byte转int
char a ='a';
short b = 1;
byte c = 2;
int i = a; // i =97 因为‘a’在字符集中对应编号为97
int j = b; // j = 1
int k = c; // k = 2
整型转浮点型
int i = 123;
float f = i; //f = 123.0
double d = i; //d = 123.0
范围大的数转范围小的数
double d =123.0;
long l = 123;
float f = d; //编译不通过
long l1 = d; //编译不通过
int i = l; //编译不通过
强制类型转换:
想要实现范围大的数转范围小的数,需要加上强转符–(类型)+变量。
范围大的数转范围小的数
double d =123.0;
long l = 123;
float f = (float)d; //f=123.0
long l1 = (long)d; //l1 = 123
int i = (int)l; //i = 123