小白 将一个数字中的偶数提出来组成新的数包括小数部分,小数部分数据丢失怎么解决

#include
int main()
{
double a,c;
int b,d=0,e=1;
scanf("%lf",&a);
b=int(a);
c=a-b;
while(b!=0)
{
if(b%2==0)
{
d=d+b%10*e;
e=e*10;
}
b=b/10;
}
if(d==0)
printf("整数部分无偶数");
else
printf("%d",d);
printf(".");
while(c-int(c)>1e-6)
{
c=c*10;
if(c<1)
printf("0");

}
b=int(c);
d=0;
e=1;
    while(b!=0)
{
    if(b%2==0)
    {
        d=d+b%10*e;
        e=e*10;
    }
    b=b/10;
}

if(d==0)
printf("小数部分无偶数");
else
printf("%d",d);

}

我的代码 但是有的带小数的会数据丢失出不来循环 求大神改下

图片说明