Day 04 类型转换
从低到高转换,按字符大小排序,先整数在小数(因为小数转换存在误差)
byte,short,char-> int-> long-> float-> double
1.从低到高转换,是自动转换,自动转换不需要额外操作。
int i= 128; //128
double c =i; //128.0
2.从高到低转换,是强制转换,强制转换的例子如下
int i =127; //127
byte b =(byte)i; //127
但是强制转换存在许多注意事项。
注意点中第四点最为重要,以下举例
//内存溢出
int i=128; //128
byte b =(byte)i; //-128
这就是注意点4中的内存溢出情况,byte的区间范围在-128到127之间,因此生成不出128
//精度问题
System.out.printIn((int)23.7); //23
System.out.printIn((int)-45.89f); //-45
这里是浮点数float和double转int 属于高转低,但是结果输出,都与原来不同,这就是精度问题。
最后就是转换问题。
char是字符,无论定义为a还是97输出都是a
int 是数值,无论定义a还是97输出都是97.