黑马程序员技术交流社区

标题: 类型转换 [打印本页]

作者: 紫幻随影-缪    时间: 2014-5-22 11:06
标题: 类型转换
今天发现一个问题:
我们写整数默认是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; 呢?

作者: chenxiangyang    时间: 2014-5-22 11:51
本帖最后由 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)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2