基本数据类型转换

2017-08-14  本文已影响14人  Jack4J
int i1 = 123;
int i2 = 345;
double d1 = (i1+i2)*1.2;//系统将转换为double类型运算
float f1 = (float)((i1+i2)*1.2);//需要加强制转换符
byte b1 = 1;
byte b2 = 2;
byte b3 = (byte)(b1+b2);//系统将转换为int类型运算,需要强制转换符

byte b4 = 67;
byte b5 = 89;
byte b6 = (byte)(b4+b5);//byte最大表示128,byte1个字节,int4个字节,强制转换会把int多的三个字节剪掉

double d2 = 1e200;
float f2 = (float)d2;//会产生溢出
System.out.println(f2);//infinite

float f3 = 1.23f//必须加f
long  l1 = 123;
long l2 = 300000000000L;//必须加L
float f = l1+l2+f3;//系统将转换float型运算
long l = (long)f;//强制将转换舍去小数部分(不是四舍五入)

练习

int i = 1,j;
float f1 = 0.1;//需要加f
float f2 = 123;
long l1 = 12345678, l2 = 99999999999;//l1没问题,l2超出int最大值范围,必须加L
double d1 = 2e20,d2 = 124;
byte b1 = 1, b2 = 2, b3 = 129;//b3超出byte最大值范围
j = j+10;//变量要先声明再赋值,需要给j先赋值
i = i/10;//没问题,值为0
i = i*1.2;//需要强转
char c1 = 'a', c2 = 125;
byte b = b1-b2;//运算出来为int类型,需要强制转换符
char c = c1+c2-1;//需要强制转换符
float f3 = f1+f2;
float f4 = f1+f2*0.1;//需要强制转换符
double d = d1*i+j;
float f = (float)(d1*5+d2);
上一篇 下一篇

猜你喜欢

热点阅读