进制转换小数部分求助
这是我编的10进制转4进制的程序 要求保留两位小数 可以运行但是小数部分结果误差很大 求大神指导#include<stdio.h>
int main(void)
{
double num,xs,b=0,result; int sum=0,i=0,j=1,zs,num_int,xs_int;
scanf("%lf",&num);
//整数部分 没有问题//
zs=num;
while(zs)
{
sum+=zs%4*pow(10,i);
zs/=4;
i++;
};zs=sum;
//小数部分 好大的误差//
num_int=num;
xs=num-num_int;
for(xs_int=xs;xs-xs_int!=0.00&&j<=2;j++) {
xs=xs*4;xs_int=xs;
b+=xs_int/pow(10,j);
xs=xs-xs_int;
};result=sum+b;
printf("%.2f",result);
return (0);
}
还有声明变量时为什么把double换成float就不行了
[ 本帖最后由 tedwugood 于 2010-10-10 01:36 编辑 ]