title: printing pi value with C
body: <p>I tried to print out the value of pi as defined in the library <code>math.h</code> which on my system is</p>
  
  <p><code> # define M_PI        3.14159265358979323846  /* pi */</code></p>
  
  <p>with this simple code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;math.h&gt;
  
  int main() {
  
      long double a = M_PI;
  
      printf("%.20Lf\n", a);
  
      return 0;
  }
  </code></pre>
  
  <p>what I get as output is</p>
  
  <pre>3.14159265358979311600</pre>
  
  <p>why is it different from that defined in the <code>math.h</code> library?</p>
  
  <p>Is there a way to reproduce the one defined in the library?</p>
  
  <p>My manual says the type <code>long double</code> extends the precision up to 24 digits. Shouldn't be enough to represent that number?</p>