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.

 

posted @ 2022-02-23 13:37  咩咩子的起床气  阅读(34)  评论(0)    收藏  举报