黑马程序员技术交流社区

标题: 为什么float b=2.3; 这样直接赋值会报错? [打印本页]

作者: 布鲁Go    时间: 2013-11-30 07:50
标题: 为什么float b=2.3; 这样直接赋值会报错?
为什么float f=2.3;  这样直接赋值会报错? 然后报需要float 找到double  ,2.3不也是在float 范围内吗?还是所有小数默认为double!!而float f=2.31234556789f;   这样加了一个f赋值,后立刻就高大上了。。。超过范围也给修正




作者: 布鲁Go    时间: 2013-11-30 08:08
类似的问题:
double d=23.45643242432432122222222222111111114444444;
    这样赋值为什么不会报错。。。而且会输出D:\Java\study\myday02\疑问\赋值.jpg

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

赋值.jpg

作者: 李文帅    时间: 2013-11-30 10:05
JAVA中定义:浮点常量不带后缀,则默认为双精度double常量,
如果要定义float类型的数据,则必须要加后缀'f'或'F'
如果要定义double类型的数据,则可以不加后缀'd'或'D'


作者: 想你的夜    时间: 2013-11-30 12:59
楼主,我经过查阅后是这样分析的,请你参考:  //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,因为单精度省内存                    区别就在于取值范围和精度不同                                   
作者: 布鲁Go    时间: 2013-11-30 14:10
李文帅 发表于 2013-11-30 10:05
JAVA中定义:浮点常量不带后缀,则默认为双精度double常量,
如果要定义float类型的数据,则必须要加后缀' ...

好的,谢谢。
作者: 布鲁Go    时间: 2013-11-30 14:12
想你的夜 发表于 2013-11-30 12:59
楼主,我经过查阅后是这样分析的,请你参考:  //float型定义的数据末尾必须有"f"或"F",为了和double区别   ...

恩,谢谢。。




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