C语言关于格式输出

如图,前面两个b输出到小数点后第6位时不应该四舍五入吗,所以为什么是9,对比如下面的·前两个c。还有就是不管float还是double他们的精度是不同的,但输出时都是输出... 如图,前面两个b输出到小数点后第6位时不应该四舍五入吗,所以为什么是9,对比如下面的·前两个c。还有就是不管float还是double他们的精度是不同的,但输出时都是输出小数点后6位吗。对于%e指数形式输出时是小数点前面是6,e之后有符号,算符号4位?是这样吗。十分感谢,辛苦了。 展开
 我来答
金色潜鸟
2018-07-14 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5613万
展开全部
float 型,精度是 十进制有效数字6到7位。 float b=123.1234567;
只能精确到 123.1234, 为什么是9,你需要把float b=123.1234567; 转化为 2进制数,按 国际标准 IEEE 754 格式 转化 存放,再转化回10进制,按你规定的小数下第几位输出。就是9了。截断误差 与 舍入误差 造成。
double 型,精度是 十进制有效数字14位。double c=12345678.1234567;
按 国际标准 IEEE 754 double 格式 转化 存放, 再转化回10进制,按你规定的小数下第几位输出。同样含 截断误差 与 舍入误差。
%e %f %lf 都是默认格式,输出格式里的 占位,“定点” 有默认位数规定。你要查你的编译器的规定。
百度网友4241a4c
2018-07-14
知道答主
回答量:3
采纳率:0%
帮助的人:1.6万
展开全部
超过精确度是会出现误码,所以出现什么数都是有可能的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式