title: Why is printf not using scientific notation?
body: <p>I understand that this is a common problem. However I can't find a solid straight answer.</p>
  
  <pre><code>16 ^ 54 = 1.0531229167e+65 (this is the result I want)
  </code></pre>
  
  <p>When I use <code>pow(16,54)</code>, I get:</p>
  
  <blockquote>
    <p>105312291668557186697918027683670432318895095400549111254310977536.0</p>
  </blockquote>
  
  <p>Code is as follows:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;math.h&gt;
  #include &lt;stdlib.h&gt;
  
  void main(){
  
     double public;
     double a = 16;
     double b = 54;
     public = (pow(a,b));
  
     printf("%.21f\n", public);
  }
  </code></pre>
  
  <p>Code executed with:</p>
  
  <blockquote>
    <p>gcc main.c -lm</p>
  </blockquote>
  
  <p>What I'm doing wrong?</p>