# 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 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相同。
如果只是要求输出结果“四舍五入”,只要通过输出格式符控制即可。
例如:
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;
int a = 100.453627
printf("%.1f",a + 0.05); //四舍五入到十分位
printf("%.2f",a + 0.005); //四舍五入到百分位
后面的方法一样
给你个简单的饿例子
四舍五入小数点后一位
float f=1.54536;
f=(int)(f*10+5)/10.0;
你分析看看就知道了
#include
main()
{
float f=1.54536;
f=(int)(f*10+5)/10.0;
printf("%f\n",f);
}
那你这个是什么意思呢。。不许用“%.1f %.2f。。。
我的想法是,十分位,你就把你的数*10,然后%10的到的余数就是这位。。。百分位类似。。
后续怎么输出,你就自己看着办吧。。反正小数点你是肯定要自己输出了 :)