教育路上

全国站>Java>基本程序>数据类型转换
发布需求
填写需求信息关闭
我们会根据您的需求匹配

姓      名:

意向城市:

留      言:

手机号码:

验  证  码:  换一张

确认提交

数据类型转换

摘要:java 数据类型转换 转换 数据类型,java 中进行运算时,我们需要统一运算符两端数据的数据类型。以下是我们为大家整理的,相信大家阅读完后肯定有了自己的选择吧。

2022-05-21 21:24网络推荐

发布时间:
2022-05-21 21:24
信息来源:
网络推荐
浏览次数:
318
数据类型转换

在 java 中进行运算时,我们需要统一运算符两端数据的数据类型,如有如下代码段:
int a=5;
double b=18;
System.out.println(a+b);
我们看到在输出语句中,我们想要输出表达式 a+b 的值。但在表达式 a+b 中,变量 a 的类型
是 int 类型,而变量 b 的类型是 double 类型,两个操作数的数据类型不一致,想要完成计算,
就需要先统一他们的数据类型。
Java 中提供了两种数据类型转换的方法,隐式转换和显示转
换。
隐式的数据转换是由系统自动完成的。系统可以帮助我们将使用存储单元较少的数据类型转

换为使用存储单元较多的数据类型,就好像我们可以直接把容量较小的容器中盛放的物品放置到容量较大的容器中一样。我们可以按图 2-11 箭头指示的方向进行隐式的数据类型转换:

from shengerguan


当我们进行运算时,如果运算符两端操作数数据类型不一致,则系统会尝试进行隐式类型转
换,如果无法进行隐式转换则在编译时发生错误。我们在程序清单 2-9 中对隐式转换进行了
演示:
程序清单 2-9 ImplicitConversion.java
1:public class ImplicitConversion{
2: public static void main(String[] args){
3: char ch='a';
4: int num=120;
5: float fNum=12.5f;
6: double dNum=22.5;
7:
8: num=ch+num;
9: dNum+=num-fNum;
10: fNum+=ch;
11:
12: System.out.println("num="+num+",fNum="+fNum+",dNum="+dNum);
13: }
14:}
程序执行结果如图 2-12 所示:
from shengerguan



程序清单 2-9 中第 3 行定义了一个字符类型变量 ch,其值为’a’,Unicode 码值为 97,在执行
第 8 行代码 num=ch+num 时,系统将 ch 转换为 int 类型,相当于执行 num=97+120,因此第
12 行输出 num 时,其值为 217。同样第 9 行中执行 dNum+=num-fNum 时,系统将 num 和
fNum 转换为了双精度实型后在进行了运算,因此得到的结果为 227.0。
有时候我们在处理数据时,系统无法完成隐式的转换,如下面的代码:
char ch=’A’;
ch+=32;这两句代码是想将大写字符’A’转换为小写字符’a’,复合赋值运算符先要将 ch 与 32 相加,然
后将结果赋值给 ch,因此系统先将 ch 的值转换为整型值即 65,然后做加法操作得到结果
97。在将结果 97 赋值给 ch 时将会发生错误,系统会提示可能损失精度,这是因为当我们将
使用内存单元较多的数据类型转换为使用内存单元较少的数据类型时,由于内存单元的减少,
可能造成数据的丢失。就像我们将较大容器中盛装的水导入到较小的容器中一样,有部分水
会损失掉。这是我们可以使用强制类型转换。强制类型转换不能解决精度损失的问题,它只
是强制将某种类型转换为另一种类型。我们可以按以下格式强制转换数据类型:
(数据类型) 数据值
程序清单 2-10 演示了强制转换:
程序清单 2-10 ForcedConversion.java
1:public class ForcedConversion{
2: public static void main(String[] args){
3: char ch='a';
4: int num=20;
5: System.out.println(ch-32);
6: System.out.println(65.75-num);
7: System.out.println();
8: System.out.println((char)(ch-32));
9: System.out.println((int)(65.75-num));
10: }
11:}
程序运行结果如图 2-13 所示:

from shengerguan


在程序清单 2-10 中,第 5 行代码中的表达式 ch-32 在运算时,为保持运算符两端数据类型
一致将 ch 转换为了整型,计算结果也为整型值为 65,因此输出的结果为 65。第 6 行中,表
达式 65.75-num 同样将 num 转换为了 double 类型,计算结果也为 double 类型,值为 45.75。
而第 8 行中,我们将 ch-32 的结果做了强制类型转换,将它转换为字符型,因为 Unicode 码
65 对应的字符为’A’,所以输出结果为 A。第 9 行中,我们将 65.75-num 的结果强制转换为了
整型,输出结果为 45,转换丢失了数据的精度,在 java 中将浮点类型转换为整型值时,将
直接丢弃小数部分。



上一篇:
赋值运算符
下一篇:
基于控制台的基本输入和输出
标签:
网友评论
发布评论

访客的评论 2022/12/01 17:37

文中描述的是准确的吗,如何报名!

相关推荐
我也来发表评价关闭
我对该内容的评价:
0
评价500
验证码: 看不清 换一张
提交 (匿名发布,无须担心别人知道您的身份)