Java的类型转换

一、自动类型转换(隐式类型转换)

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为 同一类型,然后进行运算。

转换从低级到高级。

 

自动转换有以下规律:

  • 小的类型自动转化为大的类型
  • 整数类型可以自动转化为浮点类型,可能会产生舍入误差
  • 字符可以自动提升为整数

二、强制类型转换(显式类型转换)

格式:(type)value:type是要强制类型转换后的数据类型

注意:

  • 强制类型转换可能导致溢出或损失精度
  • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换
  • 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
//-----------------自动类型转换(隐式转换)-----------------

//小的类型自动转化为大的类型

byte byteValue1=110;

int intValue1=byteValue1+50;

System.out.println(intValue1);



//整数类型可以自动转化为浮点类型,可能会产生舍入误差

//Float和Double提供了快速的运算,然而问题在于转换为二进制的时候,有些数字不能完全转换,只能无限接近于原本的值

float floatValue1=2+10f;

float floatValue2=floatValue1-11.9f;

System.out.println(floatValue2);



//字符可以自动提升为int

char charValue1 ='a';

int intValue2=charValue1+10;

System.out.println(intValue2);



//-----------------强制类型转换-----------------

//强制类型转换可能导致的溢出

byte d = (byte) 129;//Byte占1字节, 8位(bit)  范围:-2^7 到 2^7-1  默认值是 0

System.out.println(d);//超出范围时,就会溢出



//强制类型转换可能导致的损失精度

System.out.println(Long.MAX_VALUE);

double floatValue3=(double) Long.MAX_VALUE;

System.out.println(floatValue3);



//在把容量大的类型转换为容量小的类型时必须使用强制类型转换

int intValueA=120;

byte byteValueB=(byte) intValueA;

System.out.println(byteValueB);



//浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

int intValue3=(int)23.7;

int intValue4=(int)-23.7;

System.out.println(intValue3);

System.out.println(intValue4);

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值