数据类型转换
java程序中要求参与计算的数据,都要保证数据类型的一致性,如果数据类型不一致将发生类型的转换
byte 类型和int类型计算,会自动进行类型转换int类型
自动转换: 将取值范围小的类型自动提升为取值范围大的类型
byte在内存中占1个字节,在和int类型运算时会提升为int类型,自动补充3个字节,所以结果还是int类型
同理,当一个int类型变量和double变量运算时,int类型会自动提升为double类型进行运算,所以结果类型为double
byte 、short、char、 --->int --> long --->float --->double
将1.5赋值到int类型变量会发生什么?编译失败,肯定无法赋值
double类型内存8个字节,int类型内存4个字节,1.5默认是duoble类型,取值范围大于int
想要赋值成功,只有通过强制类型转换,将double类型强转成int类型才能赋值
强制类型转换: 将取值范围大的类型强制转换成取值范围小的类型
比较而言,自动转换是Java自动执行的,而强制转换是需要我们自己手动执行
转换格式 :
数据类型 变量名 = (数据类型)被转数据值;
将1.5赋值到int类型代码修改为
需要注意的是当double类型强转成int类型会失去小数点及其后面的数
浮点强转成整数,会直接舍弃小数点及其后面的数,可能会造成损失精度
范围较大的类型强转为范围较小的类型可能会造成数据丢失,数据的丢失取决于范围较大类型的值是否在范围较小的类型的范围之内
Java数据类型转换
原文:https://www.cnblogs.com/tenderly/p/11483992.html