double 和float区别?

 我来答
Mei_陈先生
高粉答主

2018-10-15 · 关注我不会让你失望
知道答主
回答量:162
采纳率:100%
帮助的人:5.1万
展开全部

1. 范围

float和double的范围是由指数的位数来决定的。

float的指数位有8位,而double的指数位有11位,分布如下:

float:

1bit(符号位) 8bits(指数位) 23bits(尾数位)

double:

1bit(符号位) 11bits(指数位) 52bits(尾数位)

于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。

其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。

float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。

2.  精度

float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。

float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;

double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

扩展资料:

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

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

浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。

数符占1位二进制,表示数的正负。

指数符占1位二进制,表示指数的正负。

尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点

指数存指数的有效数字。

指数占多少位,尾数占多少位,由计算机系统决定。

可能是数符加尾数占24位,指数符加指数占8位 -- float.

数符加尾数占48位,指数符加指数占16位 -- double.

就烦条0o
2018-08-03 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
float:占4个字节
double: 占8个字节
double 和 float 的区别是double精度高,有效数字16位,float精度7位(可提供7位或8位有效数字,构成包括符号位、指数位和尾数位)。
但double消耗内存是float的两倍,double的运算速度比float慢得多,能用单精度时不要用双精度。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4de7b94
推荐于2017-09-11 · TA获得超过8157个赞
知道小有建树答主
回答量:1423
采纳率:93%
帮助的人:59.2万
展开全部
double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,在不确定的情况下还是尽量用double以保持正确性.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汉能禄晟
2019-08-20 · TA获得超过3704个赞
知道大有可为答主
回答量:3010
采纳率:35%
帮助的人:185万
展开全部
取值范围是第二个,但是很多教材写的是第一种,因为浮点数的精度还应该包括能表示的绝对值最小的数,理解意思就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-05-07
展开全部
float能有6-7有效数字
double能有15位

比如π=3.1415926535897932384626433832795
float 3.141593 如果显示的更多的话就是不一定的数值了
double 3.14159265358979
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式