title: why does std::numeric_limits<float>::min() differ in behavior when streamed to output with different functions?
body: <p>I got a weird behaviour with  </p>
  
  <pre><code> std::numeric_limits&lt;float&gt;::min()
  </code></pre>
  
  <p>when I call std::cout I get an output value of 1.17549e-38</p>
  
  <p>in contrast when I use </p>
  
  <pre><code>printf("%f", std::numeric_limits&lt;float&gt;::min());
  </code></pre>
  
  <p>I get a value of 0.000000.</p>
  
  <p>note that when I evaluate (<code>std::numeric_limits&lt;float&gt;::min() ==  std::numeric_limits&lt;float&gt;::min()</code>) I get <code>true</code> (which is intuitive and logical)</p>
  
  <p><strong>so, can any one explain to me this difference in output?</strong></p>