不知道错在哪了??
/* Note:Your choice is C IDE */#include "stdio.h"
#include "math.h"
void main()
{float yuan,xiao;
double jian;
int zhen,a[10]={0},i,n;
printf("输入实数和四舍五入的位数");
scanf("%f%d",&yuan,&n);
zhen=yuan;
xiao=yuan-zhen;
for(i=1;i<7;i++)
{
a[i]=xiao*10;
xiao=xiao*10-a[i];
}
for(i=n+1;i<7;i++)
jian+=pow(10,-(1*i))*a[i] ;
if(a[n+1]>=5)
printf("\n%f\n",(yuan-jian+pow(10,-1*n)));
else
printf("%f",(yuan-jian));
}
上面是四舍五入的代码,现在问题是输入有些实数输出正确,有些是错误的,如输入3.258 2(将3.258保留两位)输出3.260001;输入3.259 2 输出就正确3.260000;并且错误的输出都是最后一位多个1,不知道错误在哪,帮忙找找!