C中的float和double的有效数字和精度各是多少?

有效数字和精度是不是同一概念?C中的float和double的有效数字和精度各是多少?刚才有人说十进制表示的话就是:float->6位,double->16位。怎么回事?... 有效数字和精度是不是同一概念?
C中的float和double的有效数字和精度各是多少?
刚才有人说十进制表示的话就是:float->6位,double->16位。
怎么回事?
展开
 我来答
写在枫叶上的故事
2018-12-04 · TA获得超过2.6万个赞
知道答主
回答量:164
采纳率:0%
帮助的人:2.6万
展开全部

float有效数字位为6 – 7位,字节数为4,指数长度为8位,小数长度为23位。取值范围为 3.4E-38~3.4E+38。

double有效数字位为15 – 16位,字节数为8,指数长度为11位,小数长度为52位。取值范围为1.7E-308~1.7E+308。

扩展资料

可根据应用程序的需求将变量声明为 float 或 double。这两种类型之间的主要差异在于它们可表示的基数、它们需要的存储以及它们的范围。如果存储比精度更重要,对浮点变量使用 float 类型。相反,如果精度是最重要的条件,则使用 double 类型。

浮点变量可以提升为更大基数的类型(从 float 类型到 double 类型)。当您对浮点变量执行算术时,通常会出现提升。此算术始终以与具有最高精度的变量一样高的精度执行。

参考资料来源:百度百科——浮点型数据



yzb808
推荐于2017-11-17 · TA获得超过679个赞
知道答主
回答量:39
采纳率:0%
帮助的人:65.7万
展开全部
float是32位,double是64位
float32位中,有1位符号位,8位指数位,23位尾数为
double64位中,1位符号位,11位指数位,52位尾数位
取值范围看指数部分
float是有符号型,其中,8位指数位,2^8=(-128—127),因此实际的范围是-2^128—2^127,约为-3.4E38—3.4E38
同理double范围约是-1.7E308—1.7E308,楼主可以自己按下计算器试试看,印象深些
精度是看尾数部分
float尾数位23位,2^23=8.3E6,7位,所以不同的编译器规定不同,有些是7位,有些8位
double尾数52位,2^52=4.5E15,15位,所以double的有效位数是15位
这是我个人的一点看法,纯手打,希望能帮到你
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自我编程
2017-11-11 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部

由于默认小数最多显示6位,我这里整数6位 再强制让输出小数点后14位 共20位

见程序

float可靠数据 算上整数部分只有7位    而double 有16位

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超大个萝呗
2010-07-23 · TA获得超过402个赞
知道小有建树答主
回答量:81
采纳率:0%
帮助的人:82.9万
展开全部
float double
二进制有效位数 24位 53位
十进制有效位数 6或7位 15或16位
因为2进制转化到10进制不是整的1000或10000的那种...所以float6位7位都有,double15位16位都有。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
转基因lxk
2019-07-29 · TA获得超过878个赞
知道答主
回答量:348
采纳率:36%
帮助的人:14.4万
展开全部
float和double是有IEEE标准的,不是C语言定的,其它语言也一样。
double型90%的情况下有效位是16位的10进制数据是对的。来一段lua程序:
local b= 9007199254740991
print("b="..string.format("%d", b))
for i=1,10 do
print("i="..i..",b+i="..string.format("%d", b+i))--打印的全是偶数
end
for i=1,10 do
print("i="..i..",b-i="..string.format("%d", b-i))--打印正确
end
由此可见,大于9007199254740991(2进制52位最大的数),从2^53开始误差就大于1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式