title: I'm losing 2's powers in IEEE754 multiplication
body: <p>I'm studying IEE754 and I'm kinda baffled by these code lines</p>
  
  <pre><code>double a = 0.2;
  double b = 100.0;
  double c = a * b;
  </code></pre>
  
  <p>I know that 0.2 cannot be perfectly represented via powers of 2 while 100 can, but I'm getting a perfect result of 20 as result in c.</p>
  
  <p>Visualizing the powers of 2 that make up these values (I'm using a simple js visualizer: <a href="http://bartaz.github.io/ieee754-visualization/" rel="nofollow noreferrer">http://bartaz.github.io/ieee754-visualization/</a>) I see that 0.2 starts with</p>
  
  <pre><code>2^-3 + 2^-4 + 2^-7...
  </code></pre>
  
  <p>and 100 with</p>
  
  <pre><code>2^6 + 2^5 + 2^2
  </code></pre>
  
  <p>and now to my question: here's what 20, aka <code>c</code> looks like</p>
  
  <pre><code>2^4 + 2^2
  ^^^
  </code></pre>
  
  <p>what? Where did 2^4 come from? If I were to mathematically multiply all terms of 0.2 by all terms of 100 I'd get 2^3 as greatest power.</p>
  
  <p>So, assuming the visualizer is correct:</p>
  
  <ul>
  <li>Where did 2^4 come from?</li>
  <li>Why isn't there any loss of precision in multiplying 0.2 by 100 if 0.2 was imprecise from the beginning? Why is <code>c</code> the exact result?</li>
  </ul>