c语言中float和double为什么输出会完全不一样?

c语言中float和double为什么输出会完全不一样?举个最简单的例子,为什么定义float的时候就正常输出七位,double的时候变成那样?不应该是1后面15个零吗?... c语言中float和double为什么输出会完全不一样?举个最简单的例子,为什么定义float的时候就正常输出七位,double的时候变成那样?不应该是1后面15个零吗? 展开
 我来答
zhangxinyu247
2016-11-05 · TA获得超过256个赞
知道小有建树答主
回答量:176
采纳率:72%
帮助的人:73万
展开全部
float 和 double 在输出的时候其实都是用%f输出。c语言中,浮点型输出默认都是输出小数后6位。你为什么会认为double会输出到小数后15位呢,我感觉你是认为double的精确度有15位,float的精确度是7位,对吧,其实事实double和float在输出的时候都是默认输出到小数后6位,但是你可以用%m.nf 的格式控制
ilvwhy
推荐于2018-01-28 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.7万
采纳率:81%
帮助的人:2652万
展开全部
float的精度和double的精度不同,double的精度高
double类型要用%lf,float类型用%f
你把double类型的值用float类型输入(输出),就会出现溢出。
追问
用lf输出就还是7位了
追答
默认只7位小数,可以控制输出位数
但是float只保证8位有效数字,就算后面输出再多,也不保证准确。
double可以保证16位有效数字。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘枭雄卡卡罗特
2018-01-28
知道答主
回答量:1
采纳率:0%
帮助的人:887
引用zhangxinyu247的回答:
float 和 double 在输出的时候其实都是用%f输出。c语言中,浮点型输出默认都是输出小数后6位。你为什么会认为double会输出到小数后15位呢,我感觉你是认为double的精确度有15位,float的精确度是7位,对吧,其实事实double和float在输出的时候都是默认输出到小数后6位,但是你可以用%m.nf 的格式控制
展开全部
但是在C语言中不是会默认的把float型转化为double型吗?按道理应该都是15位有效数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式