小白 提问 将小数全化成整数 如123.456变成123456

#include
int main()
{
double a;
scanf("%lf",&a);
while(a-int(a)>1e-6)
a=a*10;
printf("%lf",a);
}

代码 但是有的数字如12.456时候可以 有的数字如123.456不行,应该是数据丢失了 但是怎么该?

你可以把输入换成字符串,然后遍历字符串,把‘.’删掉,然后输出

输出每一步骤a,可以看到是如下结果。
图片说明
确实有问题
int main()
{
double a;
long b;
int c=10;
scanf("%lf",&a);

 b=a*1000000;

while(b%c==0){
b=b/10;
}
printf("%d",b);
}

当这个代码也有约束,要求整数位不要太大。