c语言精确小数位数会怎样舍去后面的小数

代码main(){printf("\n%.2f",3.155);}结果显示3.15,将3.155换成3.156结果显示3.16以上说明舍去后面的小数时既不是直接舍弃,又... 代码

main()
{
printf("\n%.2f",3.155);
}

结果显示 3.15,
将3.155换成3.156
结果显示3.16

以上说明舍去后面的小数时既不是直接舍弃,又不是四舍五入,(我们老师也说过,精确位数并不会改变本身的值)那它是如何得到这个结果的?
展开
 我来答
爱教育爱学习
高粉答主

2019-11-20 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112734

向TA提问 私信TA
展开全部

1、正数x四舍五入的技巧:

doublex;

x=(int)(x+0.5);

2、举例:若正数要依舍去法精确到小数点後第二位;

例如6.2367–>(int)(623.67)/100.0=623/100.0=6.23

doublex;

x=(int)(x*100)/100.0;//注意是除以100.0;

3、举例:若正数要四舍五入精确到小数点後第二位,即x*100四舍五入再除以100;

x=(int)(x*100+0.5)/100.0;

扩展资料

C语言保留小数点后一位

例:

#include<stdio.h>

voidmain()

{

floata=1,b=2,c;//先定义一个实型数据

c=a/b;

printf("%.1f\n",c);//重点在于%.1f

}

cjj796
2013-10-26 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3460万
展开全部

你好!!

    

int main()
{
float a = 3.155;                    //保留到小数点后两位
float b =(int)((a*100)+0.5)/100.0; //四舍五入的运算 
printf("原来的小数:%.3f \n四舍五入后:%.2f\n",a,b);//输出结果 
    return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8aedf19
2013-10-24 · TA获得超过606个赞
知道小有建树答主
回答量:231
采纳率:100%
帮助的人:112万
展开全部
//可以用以下代码进行测试:
#include <stdio.h>

int main()
{
printf("%.2f\n", 3.141592653);
printf("%.3f\n", 3.141592653);
printf("%.4f\n", 3.141592653);
printf("%.5f\n", 3.141592653);
printf("%.6f\n", 3.141592653);
printf("%.7f\n", 3.141592653);
printf("%.8f\n", 3.141592653);
return 0;
}

结果表明:到预设精度处会进行四舍五入

追问
可能我说的还不够明白,3.155会显示3.15,说明精确时不是按照四舍五入来的,我想问的是,为何会显示这样的结果,编译器遵循怎样的规则
追答
出现这种情况的原因是——浮点数也采用二进制编码,输出时要转为十进制,具体你可以查浮点数编码规范IEEE754
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
推荐于2017-10-06 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6430万
展开全部

C语言用%m.nf输出浮点数时,会从n+1位小数位进行四舍五入。

如:

printf("%5.2f\n", 3.567 ); //输出 3.57,前面有一个空格,补齐五个字符宽度。

但,由于浮点数是不精确的数据,与实际准确数是有误差的,四舍五入也会出现差异,如:

	float f=3.155;
printf("%f\n", f ); //默认小数位6位,第七位四舍五入:3.155000
printf("%.10f\n", f ); //输出:3.1549999714
//参考以上代码说明,理解以下输出
printf("%.2f\n", f ); //3.15
printf("%.3f\n", f ); //3.155
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式