为什么二进制小数0.101转化为十进制数,输出结果为0.00(程序如下)

2025-03-12 01:26:39
推荐回答(1个)
回答1:

这个程序用这个方法算,太麻烦了,不过已经改好了:
#include
#include

int main()
{
  int i,n,N,C;
  double A,B,D,sum;
  sum=0;
  A=0.101;
  for(n=1,i=1;n<=3;n++,i++) //循环范围错了 
  {
   A=A*10;
   N=(int)A%10; //只能取末位 
   B=N;
   D=pow(2,i);
   D=B/D;  //不能保存到int中 
   sum=sum+D; //这里加错了 
  }
  printf("%f",sum);
}