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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 布鲁Go 中级黑马   /  2013-11-30 07:50  /  1948 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么float f=2.3;  这样直接赋值会报错? 然后报需要float 找到double  ,2.3不也是在float 范围内吗?还是所有小数默认为double!!而float f=2.31234556789f;   这样加了一个f赋值,后立刻就高大上了。。。超过范围也给修正



评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 神马都是浮云

查看全部评分

5 个回复

倒序浏览
类似的问题:
double d=23.45643242432432122222222222111111114444444;
    这样赋值为什么不会报错。。。而且会输出D:\Java\study\myday02\疑问\赋值.jpg

赋值.jpg (6.78 KB, 下载次数: 19)

赋值.jpg
回复 使用道具 举报
JAVA中定义:浮点常量不带后缀,则默认为双精度double常量,
如果要定义float类型的数据,则必须要加后缀'f'或'F'
如果要定义double类型的数据,则可以不加后缀'd'或'D'

回复 使用道具 举报
楼主,我经过查阅后是这样分析的,请你参考:  //float型定义的数据末尾必须有"f"或"F",为了和double区别                    float X=2.3f;                    float Y=2.3F;                                        //底层转换,也就是所谓的隐式转换                    float Z=2;                                        //double 表示双精度的可以加D或者d也可以不加,如下                    double x=2.3;                                        double y=2.3d;                                         double  z=2.3D;                    //底层转换,也就是所谓的隐式转换                    double a=2;                                        注意:在实际编程中能用单精度float就尽量不用双精度double,因为单精度省内存                    区别就在于取值范围和精度不同                                   

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1 赞一个!

查看全部评分

回复 使用道具 举报
李文帅 发表于 2013-11-30 10:05
JAVA中定义:浮点常量不带后缀,则默认为双精度double常量,
如果要定义float类型的数据,则必须要加后缀' ...

好的,谢谢。
回复 使用道具 举报
想你的夜 发表于 2013-11-30 12:59
楼主,我经过查阅后是这样分析的,请你参考:  //float型定义的数据末尾必须有"f"或"F",为了和double区别   ...

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