title: Precision, range, negative values float
body: <p>I'm trying to figure out how floats and doubles work in C but I'm confused on many levels. Here are my questions:</p>
  
  <ol>
  <li><p>My book tells me that the max value of a float is 10<sup>38</sup>. Yet, it is only accurate up to 10<sup>10</sup>. At 10<sup>11</sup>, the computer gives me an approximate value, not the exact value. Where does this limit of precision come from, and why is it not mentioned? </p></li>
  <li><p>What is the point of calling the max range 10<sup>38</sup> when it's not accurate?</p></li>
  <li><p><code>int</code> and <code>float</code> both take up 4 bytes of memory, yet they have widely different ranges. Why is that?</p></li>
  <li><p>The range of a float is 10<sup>-38</sup> to 10<sup>38</sup>, yet negative values are possible. Why?</p></li>
  </ol>
  
  <p>I greatly appreciate any help I can get here. I'm relatively new to C, so please keep that in mind when explaining.</p>