#include <iostream> #include <cstring> using namespace std; char character[105]; int index1=0; int mid; int numl[105],numr[105]; int resl[420],resr[420]; int main() { while(char in=getchar()){ if(in==EOF)break; character[index1]=in; ++index1; if(in=='\n'){ mid=0; bool hassmall= true; for(int i=0;i<index1-1;i++){ if(character[i]=='.'){ mid=i; break; } } if(mid==0){ hassmall= false; mid=index1-1; } for(int i=0;i<mid;i++){ numl[i]=character[mid-i-1]-48; } for(int i=mid+1;i<index1-1;i++){ numr[i-mid-1]=character[i]-48; } int nowreal=0; while(1){ if(numl[0]%2==1)resl[nowreal++]=1; else resl[nowreal++]=0; // cout<<numl[2]<<endl; numl[0]/=2; bool out=true; for (int i = 0; i < mid; ++i) { if(numl[i]!=0){ out= false; break; } } if(out== true)break; for (int i = 1; i < mid; ++i) { if(numl[i]%2==1)numl[i-1]+=5; numl[i]/=2; } } int time=33; int nowsmall=0; if(hassmall) while(time--){ if(numr[0]*2>=10){ resr[nowsmall++]=1; numr[0]=2*numr[0]-10; } else{ resr[nowsmall++]=0; numr[0]=2*numr[0]; } for (int i = 1; i < index1-1-mid-1; ++i) { if(numr[i]*2>=10){ numr[i-1]++; numr[i]=numr[i]*2-10; } else{ numr[i]*=2; } } } for (int i = nowreal-1; i >=0; --i) { printf("%d",resl[i]); } printf("."); for (int i = 0; i < 33; ++i) { printf("%d",resr[i]); } printf("\n"); index1=0; memset(numl,0,sizeof(numl)); memset(numr,0,sizeof(numr)); memset(resl,0,sizeof(resl)); memset(resr,0,sizeof(resr)); } } return 0; }