#include"stdio.h"
main()
{float a;
scanf("%f",&a);
a=((int)(a*1000+0.5))/1000;
printf("%f\n",a);
}
a=((int)(a*1000+0.5))/1000 这句 你已经把a 强制转化成int型 了 当然就是整数形式了
w267us88 正解
w267us88 正解
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-03-22
a=((int)(a*1000+0.5))/1000.0;追问
真的好用了,能解释一下为什么吗?
追答你之前分母与分子类型都是int类型,所以运算结果也是int
分母与分子至少有一个是float类型时,运算结果是float类型,实际值类型强制转为左侧变量类型
第2个回答 2013-03-22
#include"stdio.h"
main()
{
float a,c;
int b;
scanf("%f",&a);
b=(int)((a*1000+0.5));
c=(float)(b);
a=c/1000;
printf("%f\n",a);
}
这样应该能对
main()
{
float a,c;
int b;
scanf("%f",&a);
b=(int)((a*1000+0.5));
c=(float)(b);
a=c/1000;
printf("%f\n",a);
}
这样应该能对