在java程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如:
int score1=82;
dobule score2=score1;
System.out.println(score2);
代码中int型变量score1可以直接为double型变量score2完成赋值操作,运行结果为:82.0
这种转换称为自动类型转换。
当然自动类型转换是需要满足特定的条件的:
1.目标类型能与源类型兼容,如doube型兼容int型,但是char型不能兼容int型
int age = 19;
char sex = '女';
char result = age+sex; int类型不能自动转换为char类型
2.目标类型大于源类型 ,如double类型长度为8字节,int类型为4字节,因此double类型的变量里直接可以放int类型的数据,但反过来就不可以
double avg1 = 75.5;
int avg2 = avg1-->double类型不能自动转换为int类型
java中的强制类型转换
当程序中需要将double型变量的值赋值给一个Int型变量,该如何处置
此时就需要通过强制类型转换来实现。
语法:(数据类型)数值
double avg1=75.8;
int avg2=(int)avg1;-->将double类型强制转换成int类型
System.out.println(avg1);
System.out.println(avg2);
//运行结果 75.8 75
可以看到,通过轻质类型将75.8赋值给int型变量后,结果为75,数值上并未进行四舍五入,而是直接将小数位截断。
注意:强制类型转换可能会造成数据的丢失,使用时需谨慎