Warum wird printf nicht mit der wissenschaftlichen notation?

Ich verstehe, dass dies ist ein häufiges problem. Aber ich kann nicht finden, eine solide klare Antwort.

16 ^ 54 = 1.0531229167e+65 (this is the result I want)

Wenn ich pow(16,54) ich bekommen:

105312291668557186697918027683670432318895095400549111254310977536.0

Code ist wie folgt:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

void main(){

   double public;
   double a = 16;
   double b = 54;
   public = (pow(a,b));

   printf("%.21f\n", public);
}

Code ausgeführt mit:

gcc main.c -lm

Was ich falsch mache?

  • So wollen Sie die wissenschaftliche Schreibweise?
  • Lesen Sie auch über die g Formatbezeichner.
InformationsquelleAutor Simon. | 2014-01-22
Schreibe einen Kommentar