点击查看:2015计算机等级考试二级Java入门教程章节汇总
点击查看:2015计算机等级考试二级Java入门教程第二章汇总
2.5 混合型算术表达式
你可以在一个表达式中混合使用各种基本类型的数值。处理混合型表达式的方式由应用表达式中每个运算符的简单规则决定。
这些规则被检查的顺序为:
如果有一个double类型的操作数,在进行运算前,要将另一个操作数转换成double类型。
如果有一个float类型的操作数,在进行运算前,要将另一个操作数转换成long类型。
如果有一个long类型的操作数,在进行运算前,要将另一个操作数转换成long类型
对于给定的运算,将依照顺序实施第一条规则。假如操作数中没有double、float或long类型,就一定是int, short或byte类型,正像我们在前面所看到的,它们使用32位算术运算。
显式类型转换
有可能你不希望用上面所列的有关混合型表达式的默认处理。例如,假如你有一个double类型的变量result,用两个int类型的变量three, two计算它的值,值分别为3和2,语句为:
result=1.5+three/two
由于three/two是整型算术运算,其结果为1,所以result的值为2.5;若three/two得1.5,最后结果就为3.0.你可以满足显示类型转换获得这个结果。
result-1.5+(double)three/two
这个显式类型转换将导致存储在three中的数值在除法运算执行前被转换为double类型。于是这个除法运算将应用规则1,操作数two也在除法运算执行前被转换为double类型,因此result将得到数值3.0。
你可以将任何一种基本类型转换成另一种基本类型,但是在做这项操作时,一定要小心不要丢失数据信息。显而易见,把数值范围较大的整数型转换成数值范围较小的整数类型就有可能丢失数据信息,这就好像将任何一个浮点型数值转换成整型数值一样,在原始数值大于float类型的最大值,将double类型转换成float类型就有可能产生无穷值。
赋值中的类型转换
当赋值语句右侧的表达式结果类型与左侧的变量类型不一致时,只要没有丢失数据的可能,就自动地进行类型转换。如果你将在此之前接触的所有基本类型按如下顺序排列:
byte - short - int - long -- flost - double
则只要是按此顺序,即从左向右,就可以自动地转换。如果希望逆向转换,比如,将double类型转换成float类型或long类型,就必须使用显式类型转换。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |