二进制浮点数转十进制浮点数
我要将二进制的浮点数专程十进制的浮点数,如(0.11)2->(0.75)10,于是写下了下面这个程序,可是却无法得到正确结果,请各位高手帮我看看问题出在了哪里?我看得快吐血了……
float BAcount_float(float floating,int pow_num) //小数部分处理
{
int leach_int;
float leach_float1,leach_float2=0;
pow_num=-1;
while(floating!=0)
{
leach_int=floating*10; //取出小数中的一位
floating=floating*10-leach_int; //让排后的小数前进一位
leach_float1=pow(2,pow_num);
leach_float1=leach_float1*leach_int+leach_float2;
leach_float2=leach_float1;
pow_num--;
}
return(leach_float2);
}