去年面试,笔试时有一道题是:
问题:float f=3.4;是否正确?
我当时真是想都没想就填了个正确。结果就是基础都不过关了。(我还深深地记得上大学时,教我的java老师特意在课上说过这个问题,忘得一干二净)
![aa886a5ddf1ece7c431c5cde71b91d2a.png](https://i-blog.csdnimg.cn/blog_migrate/3238bb328bd462ba088568360b748e06.jpeg)
对于我们码农来说,真的是万事都是增删改查,都习以为常了,而java中的一些小细节可能我们都把他们忘记了,今天我就帮大家拾起java中冰山一角的float吧。
float:浮点型数据类型,用于存储单精度浮点数或双精度浮点数
在编译器中直接写 float a= 3.4;
![17c4f8c204082b12a04b9977eafaef3e.png](https://i-blog.csdnimg.cn/blog_migrate/9fdd47083005759e3691db86c9cd05d9.jpeg)
不正确写法
直接就报错了,(我想说这个问题真的很明显,可是吧真的给忽略了)
说到这里,大家也知道答案了,肯定是不正确了。
原因:编译器可以自动向上转型,如int 转成 long 系统自动转换没有问题,因为后者精度更高
double 转成 float 就不能自动做了,所以后面的加上个 f;也就是说必须写成float f=(float)3.4 或float f = 3.4f
![4eb7d544e64f55f54ead7fe832815df1.png](https://i-blog.csdnimg.cn/blog_migrate/3fe75d91ba3fc1cae9f50663888abf24.jpeg)
正确写法
记住这一点:在java里面,没小数点的默认是int,有小数点的默认是 double