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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭娇珍 中级黑马   /  2012-12-28 20:10  /  1828 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郭娇珍 于 2012-12-29 18:15 编辑

float型float f=3.4是否正确?

评分

参与人数 1黑马币 +2 收起 理由
刘芮铭 + 2

查看全部评分

5 个回复

倒序浏览
不对,在java中默认的类型是int和double
做整型赋值的时候,比如,byte,char,还有short,直接赋值一个int的是可以的,虽然是大给小,但是因为编译器会去匹配你的值是不是在那个类型的范围内,超出范围会报错,不超出没关系。
但是float的时候不同了,因为默认double,必须强制类型转换,或者你直接赋值float型的,加个f或者F。
好像是这么回事,自己去测试下代码验证下比较好。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
float精度7位,float型float f=3.4也不算错误,在你进行javac编译的时候会报可能损失精度,对于float在赋值的时候后面最好加上f,表示是float类型的。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
float  double  是浮点型  而java中默认是double  所以声明float时要加 f  表示属性是单精度

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
float f = 3.4;
编译器报错:cannot convert from double to float 不能把double型转换为float型
double d = 3.4;//显示正确结果
默认是double类型,所以定义float类型要强制转换,float f = 3.4f;
回复 使用道具 举报
本帖最后由 郭娇珍 于 2012-12-29 18:19 编辑

{:soso_e189:}问题已经解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马