java float与double的区别

本文详细阐述了float和double两种浮点数类型的存储方式与表示精度的区别。float采用单精度32位存储,精度为6位有效数字;而double采用双精度64位存储,精度达到15位有效数字。此外,还介绍了两者在数值范围、内存占用以及编程使用中的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

float和double存储方式区别:

单精度浮点数在机内占4个字节,用32位二进制描述。

双精度浮点数在机内占8个字节,用64位二进制描述。

浮点数在机内用指数形式表示,分别为:数符,尾数,指数符,指数四部分。 
数符占1位二进制,表示数的正负。 
指数符占1位二进制,表示指数的正负。 
尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点 
指数存指数的有效数字。

指数占多少位,尾数占多少位,由计算机系统决定。 
可能是数符加尾数占24位,指数符加指数占8位 -- float. 
数符加尾数占48位,指数符加指数占16位 -- double.

知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是你想知道的数值范围。

float和double表示精度区别:

对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度8位。但double消耗内存是float的两倍,double的运算速度比float慢得多,所以在使用计算过程中,能用单精度时不要用双精度,以省内存,加快运算速度。

float是单精度类型,精度是6位有效数字,取值范围是10的-38次方到10的38次方,float占用4个字节的存储空间
double是双精度类型,精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间
当你不声明的时候,默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f
例如:float a=1.3;则会提示不能将double转化成float,这成为窄型转化。如果要用float来修饰的话,则应该使用float a=1.3f
注意:float是6位有效数字,第7位数字将会产生四舍五入
所以如果一个float变量,这样定义: float a=1.32344435; 则第7位将产生四舍五入(5及5以下的都将舍去)


转载自:http://www.strutshome.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值