c语言编程~如何四舍五入

编写程序((注意:并非简单用“%.1f %.2f…….”输出!)打印值100.453627,分别四舍五入到十分位、百分位、千分位、万分位

# 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相同。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-17
如果只是要求输出结果“四舍五入”,只要通过输出格式符控制即可。
例如:
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;
第2个回答  2009-03-20
int a = 100.453627
printf("%.1f",a + 0.05); //四舍五入到十分位
printf("%.2f",a + 0.005); //四舍五入到百分位
后面的方法一样
第3个回答  2009-03-20
给你个简单的饿例子
四舍五入小数点后一位
float f=1.54536;

f=(int)(f*10+5)/10.0;

你分析看看就知道了

#include<stdio.h>
main()
{
float f=1.54536;

f=(int)(f*10+5)/10.0;
printf("%f\n",f);
}本回答被提问者采纳
第4个回答  2009-03-20
那你这个是什么意思呢。。不许用“%.1f %.2f。。。

我的想法是,十分位,你就把你的数*10,然后%10的到的余数就是这位。。。百分位类似。。
后续怎么输出,你就自己看着办吧。。反正小数点你是肯定要自己输出了 :)