当前位置: 首页 > JavaEE > 常见Java面试题之float f=3.4;是否正确?

常见Java面试题之float f=3.4;是否正确?

img
张老师华为答疑老师
思博双IE金牌讲师
img
img
img
更新时间:2020年06月08日   作者:spoto | Java面试题  float  double类型  

float f=3.4;是否正确?咋一看好像没什么问题,但是认真分析分析,短短的一句赋值代码蕴含多个知识点,也是最经常遇到的一个基础java面试题,不管原来知道不知道,现在告诉你,赶紧记牢面试无忧!
常见Java面试题之float f=3.4;是否正确?

 

float f=3.4;是不正确的

3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。

 

 

 

float f=3.4;涉及知识点分析

 

 

浮点型(float)

Java的浮点数遵循IEEE754标准,采用二进制数据的科学计数法来表示浮点数,对于float型数值,第1位是符号位,接下里8位表示指数,再接下来的23位表示尾数;

双精度型(double)

对于double类型数值,第一位也是符号位,接下来的11位表示指数,再接下来的52位表示尾数。

float与double对比分析

因为Java浮点数使用二进制数据的科学记数法来表示浮点数,因此可能不能精确表示一个浮点数,使用double类型的浮点数比float类型的浮点数更精确,但如果浮点数的精度足够高,依然可能发生这种情况,如果开发者需要精确保存一个浮点数,则可以考虑使用BigDecimal类。
double类型代表双精度浮点数,float类型代表单精度浮点数。一个double类型的数值占8字节、64位,一个float类型的字节占4字节,32位。

以上是思博网络为广大奔走在面试以及学习阶段的java同行整理的关于Java float与double可能遇到的面试问题以及重要知识点,可能存在不足或者需要补充,您有什么观点和认识,欢迎指正补充,大家一起快乐学Java,高薪在就业!
如果遇到什么疑问或者困惑,可以联系我们,乐于与您分享讨论!

热门推荐
最新推荐
客服 扫码咨询考证课程


即刻预约

免费试听-咨询课程-获取免费资料

思博网络SPOTO新活动 
-->