title: Convert float to double loses precision but not via ToString
body: <p>I have the following code:</p>
  
  <pre><code>float f = 0.3f;
  double d1 = System.Convert.ToDouble(f);
  double d2 = System.Convert.ToDouble(f.ToString());
  </code></pre>
  
  <p>The results are equivalent to:</p>
  
  <pre><code>d1 = 0.30000001192092896;
  d2 = 0.3;
  </code></pre>
  
  <p>I'm curious to find out why this is?</p>