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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 紫幻随影-缪 中级黑马   /  2014-5-22 11:06  /  889 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天发现一个问题:
我们写整数默认是int类型,写小数默认是double类型的
所以有 float f=5.5;//会报cannot convert from double to floate     要写成:float f=(float)5.5;或float f=5.5f;
但是为什么写 short s=34; 时不会报错, 为什么不用写成 short s=(short)34; 呢?

1 个回复

倒序浏览
本帖最后由 chenxiangyang 于 2014-5-22 11:53 编辑

float是单精度 double是双精度 而且默认小数使用dble。所以在没有强制转换的情况下 系统会选择精度更高的double型。而int是整型,short也是整型,但两个的取值范围有差别,short的范围是2^7·~2^-7-1.而34在这个范围,所以可以直接使用短整型short.(那个范围写错了 应该是2^-7~2^7-1)

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

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