title: Retrieve the string “0.1” from after assignment to a double variable
body: <p>I have a naive question about the high-precision number conversion (in C++ here). </p>
  
  <p>Suppose the user assigns 0.1 to the double variable x_d with this statement, </p>
  
  <pre><code>x_d = 0.1
  </code></pre>
  
  <p>It is known that <code>x_d</code> thus obtained is no more exactly <code>0.1</code>, due to the inevitable machine rounding.</p>
  
  <p>I wonder whether we still have a way to get back the original highly precise string “0.1”,  from the double variable <code>x_d</code>? Clearly, it is useless to use <code>std::to_string (x_d)</code> here. Even a high precision library like <code>boost::multiprecision</code> or MPFR seem to be helpless. For example,  <code>std::to_string(boost:cpp_dec_float_10000(x_d) )</code> cannot recover back the lost precision.</p>
  
  <p>So my question is, can we retrieve back the string “0.1” from a double <code>x_d</code> that is assigned using the statement <code>x_d = 0.1</code>?</p>