www.rtmj.net > C语言取小数点四舍五入

C语言取小数点四舍五入

12345678 intmain() { floata; intm; scanf("%f", &a); printf("%d", (int)(a+0.5)); return0; }

int a = 100.453627 printf("%.1f",a + 0.05); //四舍五入到十分位 printf("%.2f",a + 0.005); //四舍五入到百分位 后面的方法一样

#include <stdio.h> main() { double a; printf("请输入一个四位小数:\n"); scanf("%lf",&a);//双精度应该是的%lf a*=100;// 扩大100倍,举个例子:a=123.4567,a=a*100,则a=12345.67 a+=0.5;//加0.5进行四舍五入a=12346.17 a=(int)a;//这个地方是想保留两位小数,后边的舍去,所以进行强制类型转换.a/=100;//上面扩大100倍,现在要对其缩小100 printf("结果是:%f\n",a);//这样就行了,或者printf("结果是:%.2f\n",a); }

%.nf,其中n是字面常量,功能是输到小数点后面的第n位,第n + 1位“四舍五入”.下面是在VC++ 6.0环境下的测试结果./*0.2345620.2350.23460.23456 Press any key to continue*/#include <stdio.h> int main() { float f = 0.2345623f; printf("%f\n",f); printf("%.3f\n",f); printf("%.4f\n",f); printf("%.5f\n",f); return 0;}

乘1000 加0.5取整 再除1000

在二级的指导书里是这样的算法:1.移动小数点,使欲舍去位成为十分位;2.给上数加上0.5;3.进行取整运算(即四舍五入);4.移回小数点.例如:对3.68,保留一位小数,就是3.68*10=36.8;36.8+0.5=37.3;37.3=37;37/10=3.7完毕.

double a,b,c; scanf("%lf",&a); scanf("%lf",&b); scanf("%lf",&c); printf("%.1lf",(a+b+c)/3+0.05);

c,(int)(x*100+0.5)中x*100就把小数点后两位移到整数部分了,然后强制转换为int,再除以float,所以结果为小数点后两位,其他也可以,不过不是保留两位小数.你假设x=123.456 x*100+0.5=12345.6+0.5=12346.1//这里加0.5是为了4舌5入 然后强制转化成int为12346 再除以100 结果为123.46 这样就做到了保留到小数点后两位,并将第3位四舍五入

C语言规定%f若f前没有标注任何数字,编译系统输出默认小数点后有6位数 像%.4f,输出小数点后是4位数字 像%.8f,输出小数点后是8位数字 它之所有扩大1000倍,就是想要小数点后的两位数 四舍五入就像小学那种啊 大于5就往前移动1,本来那个归0 题目已经很清楚了 x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0} 里面所有数相加,除以个数 本来应该是15.03 但输出要符合系统就变成15.030000了

#include double a=0.123556;int n = 3;// N由scanf输入a = (double) ( (int) (a * pow(10,n) + 0.5)) / pow(10,n);printf("%lf",a);

网站地图

All rights reserved Powered by www.rtmj.net

copyright ©right 2010-2021。
www.rtmj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com