```cpp
#include<stdio.h>
#include<math.h>
int main()
{
int k;
int a;
double d,b;
int i,j;
long long left;
int m;
int temp;
scanf("%d",&m);
for(i=1;i<=m;i++)
{
scanf("%lf%d",&d,&k);
a=floor(d);
b=d-a;
j=0;
while(a!=0)
{
temp=a%2;
left=pow(10,j)*temp+left;;
a/=2;
j++;
}
printf("%.4lf(10)=%lld.",d,left);
j=0;
while(b!=0)
{
b*=2;
if(j==k)break;
if(floor(b)==1)
printf("1");
else
printf("0");
b=b-floor(b);
j++;
}
printf("(2)\n");
}
}
我的输入是
1
7360.2257
100
得到输出
7360.2257(10)=1110011000000.0011100111000111011110011010011010110101(2)
但答案要长得多7360.2257(10)=1110011000000.0011100111000111011110011010011010110101000010110000111100100111101110110010111111101100010101101101(2)