title: sizeof long double and precision not matching?
body: <p>Consider the following C code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  int main(int argc, char* argv[]) 
  {
      const long double ld = 0.12345678901234567890123456789012345L;
      printf("%lu %.36Lf\n", sizeof(ld), ld);
      return 0;
  }
  </code></pre>
  
  <p>Compiled with <code>gcc 4.8.1</code> under <code>Ubuntu x64 13.04</code>, it prints:</p>
  
  <pre><code>16 0.123456789012345678901321800735590983
  </code></pre>
  
  <p>Which tells me that a long double weights 16 bytes but the decimals seems to be ok only to the 20th place. How is it possible? 16 bytes corresponds to a quad, and a quad would give me between 33 and 36 decimals.</p>