title: How does Java precisely display a double while it cannot be accurately expressed in binary scientific notation?
body: <p>From my understanding, when assigning any double value to a variable, it will go through these steps :</p>
  
  <ol>
  <li>Convert to binary. </li>
  <li>Do some shifting in format of scientific notation.</li>
  <li>Convert to IEEE754.</li>
  </ol>
  
  <p>Both step 1 and step 3 may introduce some inaccuracy. So the value stored in memory is already not accurate.</p>
  
  <p>But surprisingly, if I don't do any calculation on this double and just print it out like:
  println(0.2d) </p>
  
  <p>or even </p>
  
  <p>println(1245.1325415d)</p>
  
  <p>As long as the double is not too long, the result'd always be accurate. </p>
  
  <p>Is there any tricks done when converting the IEEE754 format back to Base10 format? </p>