A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 郭利超 高级黑马   /  2013-3-25 09:55  /  2007 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郭利超 于 2013-3-25 11:56 编辑

如图片所示  请大神帮忙详述类型提升的过程  和最后输出结果  代码是从就业培训教程上面截取出来的!
懵懂懵懂啊!  
这个代码给我转晕了 求大神指点迷经!

未命名.jpg (47.55 KB, 下载次数: 26)

未命名.jpg

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

倒序浏览
类型转换
类型转换方向(存储空间较小的数据可以转换到存储间大的,反之不行)
Int I = 10;
Long l = I;//不丢精度。
Int b = 10;
Byte c = b;//错误,大转小
强制类型转换(大的转成小的,产生精度丢失的问题)
Int b = 10;
Byte c = (byte)b;//丢失精度。
自动类型提升(多种类型变量运算结果可能造成结果类型提升,编译强制提升类型)
Byte b =10;
Byte c =20;
Byte d = b+c//错误,int d
Byte d = (byte)b+c;
自动类型提升结论
AB其中有double, 运算结果为double
AB其中有float, 运算结果为float.
AB 其中有Long ,运算结果为long
其余情况为int.

其中你得知道byte short char int float double 的级别,而且要知道每种各自占多少位或字节 就是占用空间较小的和占用空间较大的
进行运算时,运算结果是占用空间较大那个类型。
结果:
283.5+515-126.3616
result=672.1384
第一个283.5是50*5.67 50虽然是byte,但是float比byte优先级高转为float。
515=5000*97取整 得到的,97是a的ASCII码。
126.3616=1024*0.1234得到  .1234就是0.1234
672.1384就是前面那个式子283.5+515-126.3616的结果。


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马