为什么双精度有16位有效数字,单精度有7位?

 我来答
娱乐小八卦啊a
高粉答主

2019-10-25 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117820

向TA提问 私信TA
展开全部

浮点数7位有效数字。双精度数16位有效数字。

浮点数取值范围:负数取值范围为 -3.4028235E+38 到 -1.401298E-45,正数取值范围为 1.401298E-45 到 3.4028235E+38。

双精度数取值范围:负值取值范围-1.79769313486231570E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308。

浮点数的精度取决于尾数部分。尾数部分的位数越多,能够表示的有效数字越多。

单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。

双精度的尾数用52位存储,2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以双精度的有效位数是16位。


扩展资料

浮点数的标准二进制数值表示:IEEE 754短浮点数和有符号整型一样,符号位是1,表示负数;符号位是0,表示正数。

指数位部分既可表示正指数又可表示负指数。因此,指数位部分通过实际指数值加上偏差值127的方法计算。例如:实际指数值为-15,该浮点数的指数位值是112。由于偏差值的作用,实际指数值的有效范围为-127到128。

有效位表示标准二进制数值的分数部分。标准二进制数值大于1小于10并包含小数部分。小数部分很重要,因此被包含在浮点数格式中。标准值通常都大于1,因此格式中无需包含1。

参考资料来源:

百度百科——双精度浮点数

百度百科——单精度

strionws
推荐于2017-09-19 · TA获得超过1644个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:370万
展开全部
float和double的精度是由尾数的位数来决定的。
浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,
由于它是不变的,故不能对精度造成影响。

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

double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenzhk52
2018-05-13
知道答主
回答量:6
采纳率:0%
帮助的人:3786
展开全部
在计算机内存中浮点数表示为1.xxxx*2^n。其中xxxx为尾数,在单精度中用23位来存储。加上整数位1 这样就有24位精度。而2^23次方转化为十进数,小数点后有7位,但并不能取到所有七位数,而能达到六位最大值999999。故单精度有7位有效数字,同理双精度可推理出16位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式