#include
int main()
{
double a,b,e=0,d=1;
int c,f=0,g;
scanf("%lf",&a);
c=int(a);
b=a-c;
while(c!=0)
{
if(c%2==1)
e=e+d;
d=d*2;
c=c/10;
}
d=1;
while(b!=0&&f!=8)
{
b=b*10;
printf("%f ",b);
if(int(b)==1)
{
e=e+d;
b=b-1;
}
d=d/2;
f++;
}
printf("%lf",e);
}
如果输入111.101的话出来的是7.5 其他的都正常 怎么回事,为什么有的时候int(b)==1判断不了?