c语言怎么实现四舍五入?
2022-12-02 · 百度认证:北京惠企网络技术有限公司官方账号
# incloud <stdio>
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相同。
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;
}
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
# incloud <stdio>
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相同。
2013-12-04
圆括号> 类型转换 > 乘除和取模 > 加减
即
() > (int) > * / > +
所以
f=(int)(f*10+5)/10.0
=(int)(1.54536*10+5)/10.0
=(int)(15.4536+5)/10.0
=(int)(20.4536)/10.0 //int 取整,就是舍去全部小数
=20/10.0
=2.000000 //默认 6位小数
其实,本人觉得,用以下的就可以实现了
f=(int)(f+0.5) // +0.5的意义就是让 小数>=0.5的变成 +1,而<0.5的 不到1,将被舍去
y=(int)(x+0.5)>(int)x?(int)x+1:(int)x
进行上述运算后,y 的值就是 x 四舍五入的结果。