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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

float x,y=0;
编译正确
float x,y=1.0;
编译错误
为啥?求大神正解!!!!!!!!!!!!!!!!!!

6 个回复

倒序浏览
0是int类型 会自动向上转型  1.0为double的 比float类型高  所以会报错 自己理解 参考
回复 使用道具 举报
Frankle 来自手机 中级黑马 2016-9-11 07:40:55
藤椅
java整数类型默认是int类型,将int类型赋值给float类型会自动类型提升;浮点类型默认是double类型,double类型赋值给float类型可能会损失精度,一般定义一个float类型的数格式为float f = 1.0f;
回复 使用道具 举报 2 0
楼上说的很详细
回复 使用道具 举报
本帖最后由 java程序猿 于 2016-9-11 09:28 编辑

1.0编译器默认是double类型, 将double类型转换成float类型可能会损失精度, 而0编译器默认的是int类型,  float的取值范围比int的大,固可以将小的数放到大的容量中~!
回复 使用道具 举报
支持支持
回复 使用道具 举报
爱学习爱java.. 发表于 2016-9-11 07:30
0是int类型 会自动向上转型  1.0为double的 比float类型高  所以会报错 自己理解 参考 ...

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