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