c语言四舍五入,封存两位小数输出结果不对
c语言四舍五入,保留两位小数输出结果不对
#include<stdio.h>
main()
{
double a,b;
printf("请输入一个数字:");
scanf("%f",a);
b=(int)(a*100+0.5)/100;
printf("%6.2f",b);
}
------解决方案--------------------
楼主scanf("%f",a); 写错啦,应该是scanf("%f",&a); 而且楼主你把double转换成int的,int的数据不是四舍五入,而是舍弃小数后面的
------解决方案--------------------
楼主看一下我改正后的
#include<stdio.h>
main()
{
double a,b;
printf("请输入一个数字:");
scanf("%f",a);
b=(int)(a*100+0.5)/100;
printf("%6.2f",b);
}
------解决方案--------------------
楼主scanf("%f",a); 写错啦,应该是scanf("%f",&a); 而且楼主你把double转换成int的,int的数据不是四舍五入,而是舍弃小数后面的
------解决方案--------------------
楼主看一下我改正后的
- C/C++ code
#include<stdio.h> main() { double a,b; printf("请输入一个数字:"); scanf("%lf",&a); b=((int)(a*100+0.5))/100.0; printf("%6.2lf\n",b); }
------解决方案--------------------
%f 在 scanf()和 printf() 中的类型不同
------解决方案--------------------