第1个回答 2010-10-09
float a=2.556;
printf("%.2f\n",a);
%.2f的意思就是保留两位小数
另外,%6.2表示,整个数的宽度(包括小数点)为6位,小数部分(不包括小数点)占两位。若整个数的宽度不足六位,则左边补空格;超过六位则忽略6。
%-6.2f与上面的含义基本相同,只是当整个数的宽度不足六位时是右边补空格
第2个回答 2010-10-09
%.2f 就可以解决了,另外c语言不是四舍五入而是直接截断,所以说不管你是2.558还是2.553 得到的都是2.55
代码:
#include<stdio.h>
void main()
{
double a=2.556;
printf("a=%.2f\n",a);
}
第3个回答 2010-10-10
#include<stdio.h>
main()
{
float xs(float,int);
float i,result;
printf("input i: ");
scanf("%f",&i);
result=xs(i,2);
printf("result=%.2f",result);
}
float xs(float a,int b) /*a是待转换数据,b是小数有效位数*/
{
int i,j=1;
float ans; /*ans表示转换结果*/
for(i=1;i<=b;i++)
j*=10;
ans=(int)(a*j)*1.0/j;
return ans;
}
第4个回答 2010-10-10
那就用 单精度float 或 用双精度 double 就可以 有小数了
#include<stdio.h>
void main()
{ float a=2.556;
printf("%.2f",a);
getch();
}
这样输出的结果就是 2.55了