c语言怎么四舍五入

作者&投稿:黎楠 (若有异议请与网页底部的电邮联系)
c语言四舍五入~

# incloud
int main(void)
{
float a ;
scanf(“%f”,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (“%0.3f”,a);
return 0;
}

扩展资料:
其他方法实现四舍五入:
int myround(double indata,int precision,double * outdata){
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
else
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮点数与0比较的函数,假设它存在。返回值与strcmp相同。

# incloud
int main(void)
{
float a ;
scanf(“%f”,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (“%0.3f”,a);
return 0;
}

扩展资料:
其他方法实现四舍五入:
int myround(double indata,int precision,double * outdata){
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
else
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮点数与0比较的函数,假设它存在。返回值与strcmp相同。

要用C语言实现四舍五入,有一个很巧妙的方法,仅使用int i=(int)(a+0.5)即可。如果遇到有负数的情况,只需要将加号改为减号即可。

C语言中四舍五入这样表示:

inta=100.453627。

printf("%.1f",a+0.05);//四舍五入到十分位。

printf("%.2f",a+0.005);//四舍五入到百分位。

以此类推,对于十进制小数.5类型数(如0.5,11.5,18.5),即小数部分可以以2的负一次方来表示的数,这时计算机是可以“完美”的储存这个十进制小数字。而对于.6,.7,.8,.9与.4,.3,.1,.2,这类数字,计算机虽然无法“完美”的储存这些数字,在这样的情况下可以运用所谓的“+0.5的取整法”。

所谓加0.5的取整法就是运用在C语言中浮点型数强制转化为整形数时只会其保留整数,而不会进行四舍五入的计数法则。所以对于保留整数的小数来说,我们只需在其原来的基础上+0.5后再进行强制类型转换,就可以达到不会出错的四舍五入。

有的标准不存在C语言四舍五入:

C语言中的四舍五入在C98标准中,标准C函数库是没有关于四舍五入的函数的,到了C99标准才出现了ceil(),floor(),nearbyint(),round()之类丰富的取整函数。

现在使用的gcc都是C99标准了,而Windows下的VC(包括VS2008)还是C98标准,所以需要遵从严格格式,包括没有内联inline、没有单行注释//、变量要写在代码块的前头等等,最大的缺点就是没有那些函数的支持。




c语言中如何进行四舍五入,求详细解释!!谢谢!
方法一:include<stdio.h> int main(){ double d1,d2,d3;d1=-3.1415926;d2=(int)(d1*10+0.5)*0.1;printf("d1=%f,保留一位小数的结果为:%.1f\\n",d1,d2);d3=(int)(d1*1000+0.5)*0.001;printf("d1=%f,保留三位小数的结果为:%.3f",d1,d3);总结四舍五入保留n...

c语言,四舍五入代码的原理是什么?
1.C语言里面,四舍五入的原理就是满5进1。用代码实现就是加上0.5,再截去小数。2.对于浮点数。float x = 3.456; \/\/保留到小数点后两位 float y =(int)((a * 100) + 0.5) \/ 100.0;\/\/output b = 3.46;对于整数。float x ;int y ;y=(int)((x+0.5)>(int)x?(int)x+...

c语言四舍五入的代码怎么打
要用C语言实现四舍五入,有一个很巧妙的方法,仅使用int i=(int)(a+0.5)即可。如果遇到有负数的情况,只需要将加号改为减号即可。C语言中四舍五入这样表示:inta=100.453627。printf("%.1f",a+0.05);\/\/四舍五入到十分位。printf("%.2f",a+0.005);\/\/四舍五入到百分位。以此类推...

java四舍五入的算法是怎样的?
四舍五入算法如下:1、观察舍入位数:需要观察需要舍入的数字小数点后的位数,以便确定需要保留几位小数。要将数字1.25舍入到一位小数,则需要观察到小数点后只有一位数。2、判断舍入条件:接下来需要判断是否需要进行舍入。通常情况下,当数字的小数部分需要保留的位数大于等于0.5时,才进行舍入。对...

四舍五入c语言
四舍五入”,只要通过输出格式符控制即可。例如:double pi=3.1415926;printf("%.4lf\\n",pi);可得输出为3.1416。printf("%.2lf\\n",pi);可得输出为3.14。如果是要把变量本身的值四舍五入到4位小数,则可以这样处理:double pi=3.1415926;pi=((int)(pi*10000+0.5))\/10000.0;

c语言中,如何实现对一个整型数字进行四舍五入?
c语言:取整型变量x中的第p位开始的n个bit位,可以采用位运算的方法。先向左移位,丢弃前面不需要的位,再通过向后移位,丢弃后面不需要的位,最后再向左移位到原来的位置,就可以了。1\/\/num&(num-1)=(1111)&(1110)=(1110)2\/\/num&(num-1)=(1110)&(1101)=(1100)3\/\/num&(num-1)=(...

c语言中的四舍五入怎么做?
incloud <stdio> int main(void){ float a ;scanf(“%f”,&a);a=(int)(a*1000+0.5)\/1000.0;printf (“%0.3f”,a);return 0;}

c语言四舍五入是怎样的?
incloud <stdio> int main(void){ float a ;scanf(“%f”,&a);a=(int)(a*1000+0.5)\/1000.0;printf (“%0.3f”,a);return 0;}

C语言怎么四舍五入
incloud <stdio> int main(void){ float a ;scanf(“%f”,&a);a=(int)(a*1000+0.5)\/1000.0;printf (“%0.3f”,a);return 0;}

C语言 四舍五入
incloud <stdio> int main(void){ float a ;scanf(“%f”,&a);a=(int)(a*1000+0.5)\/1000.0;printf (“%0.3f”,a);return 0;}

塔什库尔干塔吉克自治县13691052547: c语言中的四舍五入怎么做? -
霍毕甲磺: 利用取整运算的截断特点实现. 比如:int a=0.75;取整后赋值给a的是0,小数点后面的被截断了. 如果要做整数的四舍五入,那么可以:a=(int)(0.75+0.5);取整后得到的与数学中四舍五入的结果一致,都是1; 如果要进行小数点后面的四舍五入,可以这样计算: 要保留小数点后面两位的小数,即在小数点后面两位上做四舍五入,0.756 float a=0.756,b; int x; b=a*100; b+=0.5; x=b; b=x/100; 运算是这样的:先将0.756乘以100,得到75.6,然后利用取值运算的截断做四舍五入,75.6+0.5=76.1取整后等于76,再除以100,得到结果:0.76

塔什库尔干塔吉克自治县13691052547: 如何用C语言对实数四舍五入 ?? 谢谢各位了 -
霍毕甲磺: 比如对小数点后第一位四舍五入,最简单的方法是(int)(实数 + O.5). 第二位的话(实数*10 + O.5)/10.0. 但是负数要特别考虑.

塔什库尔干塔吉克自治县13691052547: C语言编程 对变量保留两位小数 并进行四舍五入 -
霍毕甲磺: h=1000*h;h=(int)h;if(h%10>4)h=(h/10+1)/100;else h=(h/10)/100;return h;

塔什库尔干塔吉克自治县13691052547: c语言四舍五入 -
霍毕甲磺: #includemain() { double a; printf("清输入一个小数 "); scanf("%lf",&a); a=(int)(a*100+0.5); a=a/100; printf("输出的四舍五入结果是 %.2f",a); } 这样就对了,输入格式有错

塔什库尔干塔吉克自治县13691052547: 用C语言编程如何实现保留几位小数并对最后一位四舍五入呀?谢谢了 -
霍毕甲磺: 很简单,假如你有一个float型变量a,其值为1.23456,而你只想保留三位小数,也就是希望得到1.235,只需要令: a = (int)(1000.0 * a + 0.5) / 1000.0 即可.如果要保留四位小数,就把1000都换成10000,依次类推.

塔什库尔干塔吉克自治县13691052547: C语言 输入一个数 a ,使之保留2位小数,对小数点后第3位数进行四舍五入,怎么做??? -
霍毕甲磺: #include"stdio.h" int main() {double a,b,c,ans;scanf("%lf%lf%lf",&a,&b,&c);ans=(a+b+c)/3;printf("%.1lf\n",ans);//格式化输出1位小数,后面自动四舍五入的return 0; }

塔什库尔干塔吉克自治县13691052547: c语言四舍五入的设计思路是怎样的?求详细解答.... -
霍毕甲磺: #include<stdio.h> void main() {int a;float x,i;scanf("%f",&x);i=x-int(x);//x减去整数部分if(i>=0.5) a=int(x)+1;//x大于0,x小于0的情况自己写咯else a=int(x);//c语言中类型转换是用向0取整的printf("%d\n",a); }如果还需要保留多少位小数,...

塔什库尔干塔吉克自治县13691052547: C程序里,怎样做到四舍五入? -
霍毕甲磺: C的整数除法,取整之类操作都是扔小数的, 你想四舍五入,只需要简单的在末尾+0.5就行了. 因为小于0.5的,加了还是不进位,所以取整是舍; 而大于等于0.5的小数部分加0.5后,会进位,整数部分加了1,再舍小数部分,也比原来整数多1了,相当于5入 如 double f=12.55; int z=(int)(f+0.5);

塔什库尔干塔吉克自治县13691052547: c语言如何四舍五入 跟 进一法除法 的 算法 -
霍毕甲磺: #include<stdio.h> int main() {int a,b; scanf("%d%d",&a,&b); printf("%d/%d(四舍五入)=%d\n",a,b,(int)((float)a/b+0.5)); printf("%d/%d(进一法)=%d\n",a,b,(int)(float)(a+b-1)/b); return 0; }

塔什库尔干塔吉克自治县13691052547: c语言整数怎么四舍五入 -
霍毕甲磺: 将整数知+5,再整除10,再乘道以10,就可专以了 参考代码: #include<stdio.h>int main() { 属int n=0;scanf("%d", &n );printf( "%d\n", (n+5)/10*10 );return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网