c语言中float和double为什么输出会完全不一样?
c语言中float和double为什么输出会完全不一样?举个最简单的例子,为什么定义float的时候就正常输出七位,double的时候变成那样?不应该是1后面15个零吗?...
c语言中float和double为什么输出会完全不一样?举个最简单的例子,为什么定义float的时候就正常输出七位,double的时候变成那样?不应该是1后面15个零吗?
展开
3个回答
展开全部
float的精度和double的精度不同,double的精度高
double类型要用%lf,float类型用%f
你把double类型的值用float类型输入(输出),就会出现溢出。
double类型要用%lf,float类型用%f
你把double类型的值用float类型输入(输出),就会出现溢出。
追问
用lf输出就还是7位了
追答
默认只7位小数,可以控制输出位数
但是float只保证8位有效数字,就算后面输出再多,也不保证准确。
double可以保证16位有效数字。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用zhangxinyu247的回答:
float 和 double 在输出的时候其实都是用%f输出。c语言中,浮点型输出默认都是输出小数后6位。你为什么会认为double会输出到小数后15位呢,我感觉你是认为double的精确度有15位,float的精确度是7位,对吧,其实事实double和float在输出的时候都是默认输出到小数后6位,但是你可以用%m.nf 的格式控制
float 和 double 在输出的时候其实都是用%f输出。c语言中,浮点型输出默认都是输出小数后6位。你为什么会认为double会输出到小数后15位呢,我感觉你是认为double的精确度有15位,float的精确度是7位,对吧,其实事实double和float在输出的时候都是默认输出到小数后6位,但是你可以用%m.nf 的格式控制
展开全部
但是在C语言中不是会默认的把float型转化为double型吗?按道理应该都是15位有效数字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询