c语言中float型的精度问题

书上写的float型的取值范围是+-(3.4*10^-38,3.4*10^38),那么,它们的精度是小数点后面38位吗,我知道不是的,但是是为什么呢,有谁能给我个详细的解... 书上写的float型的取值范围是+-(3.4*10^-38,3.4*10^38),那么,它们的精度是小数点后面38位吗,我知道不是的,但是是为什么呢,有谁能给我个详细的解释吗。谢谢 展开
 我来答
L_o_o_n_i_e
推荐于2017-10-04 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5521万
展开全部
取值范围 3.4*10^38
有效数字只有 7 到 8 个。
例如:
float a=123.456789;
float b=123456789.0;
printf("%20.8f\n",a);
printf("%20.8f",b);
打出:
123.45678711 -- 后3位不精确
123456792.00000000 -- 前7位精确,92 开始不对了。
dingbushun
2010-02-18 · TA获得超过1869个赞
知道小有建树答主
回答量:536
采纳率:0%
帮助的人:474万
展开全部
3.4*10^38是说他可以达到的上限是这么多。谁说精度是38,float精度是小数点后6-7位

补充:嗯我错了,应该是有效数字不是小数点后
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zbj5599042
2010-02-18 · TA获得超过231个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:127万
展开全部
只是范围,而不是一定要小数点后38位
float的精度在编程中是可以控制的例如 printf("%0.2f",x);
输出X的值,并保留小数点后2位。
当然,也可以是n位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式