(第7讲)java基本数据类型转换

第七讲

注意:

1、boolean类型不可以转换为其他的数据类型,其他的数据类型也不可以转换为Boolean类型。

2、整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵守:

(1)容量小的类型自动转换为容量大的数据类型,数据类型按容量大小排列的顺序为:byte,short,char<int<long<float<double(其中byte,short,char之间不会相互转换,他们三者在计算时首先转回int型)

(2)容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出,使用时要格外注意。

(3)有多种类型的数据混合运算时,系统首先自动的将所有数据转换为容量最大的那种数据类型,然后在进行计算。

(4)实数常量默认为double

(5)整数常量默认为int

       


请看下边代码的解释:

 int i1=123;
int i2=456;
double d9=(i1+i2)*1.2;//系统将转化为double型运算
float f9=(float)((i1+i2)*1.2);//需要加强制转换符,因为默认是double型进行运算的
byte b5=67;
byte b6=89;
byte b7=(byte)(b1+b2);//系统将转换为int型运算,需要强制转换符
double d8=1e200;
float f5=(float)d8;//会产生溢出
System.out.println(f5);
float f6=1.23f;//必须加f
long l9=123;
long l8=2000000000L;//必须加L
float f12=l9+l8+f6;//系统将转换为float型运算
long l=(long)f12;//强制转换会舍去小数部分(不是四舍五入)


 
请看下边的程序中的错误:
public static void main(String[] args) {
int i=1,j;
long l1=12345678,l2=8888888888l;//第一个int 能装下,第二个装不下所以必须要加L
float f1=(float)0.1;//两种方法,一种是0.1前面加个float,第二是0.1后边加f
float f2=123;
double d1=2e20,d2=124;
byte b1=1,b2=3,b3=129;//超出
j=j+10;//变量要先赋值才能用
i=i/10;//结国是0,做计算是int型,0.1装为int型为0
i=i*0.1;//这个做完是double型,所以报错
char c1='a',c2=125;//没有问题,直接asci码赋给它
byte b=b1+b2;//首先做运算的时候是int型,然后赋值给byte,就会报错
char c=c1+c2-1;//有问题,计算时转为int,再赋值给char,会出错
float f3=f1+f2;
float f4=f1+f2*0.1;//有问题,后边计算时是double,转为float强制转换
double d=d1*i+j;
float f=(float)(d1*5+d2);


//上边改为正确的是下边所示的

int i=1,j=12;
long l1=12345678,l2=8888888888L; 
float f1=(float)0.1; //0.1f,这样写与前面的区别很大,因为前边的0.1是double型,后边的0.1是float
float f2=123;
double d1=2e20,d2=124;
byte b1=1,b2=3,b3=124; 
j=j+10; 
i=i/10; 
i=(int)(i*0.1); 
char c1='a',c2=125; 
byte b=(byte)(b1+b2); 
char c=(char)(c1+c2-1); 
float f3=f1+f2;
float f4=(float)(f1+f2*0.1); 
double d=d1*i+j;
float f=(float)(d1*5+d2);
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值