title: Why `inf` represent float overflow?
body: <p>This program:</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  int main() {
      float var_f = 9.999e38; //overflow the float
      std::cout &lt;&lt; var_f;
  
      std::cin.get();
      return  0;  
  }
  </code></pre>
  
  <p>prints out: <code>inf</code></p>
  
  <ol>
  <li><p>Does <code>inf</code> here represent infinity (∞) ?</p></li>
  <li><p><strong>Why</strong>, when <code>9.999e38</code> is not infinity (which can be store by double type) ?</p></li>
  <li><p>Why it only happen with <code>float</code>, when:</p>
  
  <p><code>unsigned long int var_i = 4294967296; //overflow integer</code></p>
  
  <p>give me <code>0</code>(like we always know) if I print <code>var_i</code> out.</p></li>
  </ol>
  
  <p>I used Visual Studio 2015 for this.</p>