数据类型的转换

8种基本数据类型除了boolean类型以外都能转换

1.自动转换

变量在做计算的时候,可能会出现溢出的情况,那么java语言采用自动类型转换的方式来处理。

 

小的空间的数据类型和大空间的数据类型的数计算会向大的空间的数据类型转换

byte、short、char在计算的时候会自动的提升数据类型成为int

例如:

byte a = 12;
byte b = a + 1;//会报可能损失精度的错误
int b = a + 1;//正确写法

//char类型的数据在运算的时候,每一个char类型的背后都对应着一个数据类型的ASCII码,参与计算的是ASCII码
char c = 'a';
int d = c + 1;结果为100

//int和其他数值的计算也会溢出,int不会提升,而是直接损失精度
int a = 2147483647;
int b = a+1;//不能提升为long
溢出后的结果是-2147483648

//任何的整数类型和long类型做运算都会转换成long类型
long c = 100;
int d = 50;
long e = c+d;

//常量在做运算的时候只要不超出定义的数据类型的范围就不会报错,不会发生类型的自动提升

byte b = 12 + 4;

小数类型自动转换:

float a = 12.5f;
//float类型和常量计算不会有类型提升
float b = a + 1;

//float和float计算不会有类型提升
float c = a + b;

//float和所有整数类型计算都会转换成float
int d = 20;
float f = d + a;

//double和float类型计算会自动的转换成double类型
double m = 150.6;
double n = m + a;
//double和其他的类型的转换和float是一样的

2.强制转换

大空间的数据类型向小空间的数据类型去转换。

语法:(目标数据类型)变量名

强制转换有可能损失精度,因为要转换的变量的值可能超过目标类型的最大值

//把整型强制转换成整型
   int i =130;
   short s = (short)i;

   long n = 120;
   byte a = (byte)n;
//把整型转换成字符型
   int p = 36;
   char h =(char)p;

//字符类型转其他的类型(除了boolean,都可以转换)
char c = 'b';
byte z = (byte)c;

//小数转换成整数,舍弃小数位
   float f = 12.7f;
   byte m = (byte)f;

//double转换成float
   double d = 23.8;
   float t = (float)d;

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值