类型转换

类型转换

精度从低到高

char,byte,short---->int--->long--->float--->double

运算中不同类型的数据先转化为同一类型,然后再进行计算



 

强制转换类型

精度:从高-->低

int i=128;
byte b = (byte) i;
System.out.println(i);//输出结果:128
System.out.println(b);//输出结果:-127 涉及到数据溢出

自动转化类型

精度: 从低-->高

int a=10;
double c =  a;
System.out.println(a);//输出结果:10
System.out.println(c);//输出结果:10.0


注意点

  1. 不能对布尔值进行转换;

  2. 不能把对象类型转化为不相干的类型;

  3. 在把高容量转化为低容量时,强制进行;

  4. 转化时可能出现内存溢出问题.



补充

操作比较大的数字时,注意溢出问题;

JDK新特性,数字之间可以用下划线分割。

int money=10_0000_0000;
int year=20;
int total=money*year;//数据溢出
long total2=money*year;//默认是int类型,转换之前已经存在问题了?
long total3=money*((long) year);
System.out.println(total1);//输出结果为:-1474836480,数据溢出
System.out.println(total2);//输出结果为:-1474836480,数据溢出
System.out.println(total3);//输出结果为:20000000000

如何解决,在相乘之前就对一个数据进行强制转化.

 

posted @ 2021-10-13 14:54  我自己12138  阅读(18)  评论(0)    收藏  举报