Warum verwendet printf keine wissenschaftliche Notation?

7

Ich verstehe, dass dies ein häufiges Problem ist. Ich kann jedoch keine klare Antwort finden.

%Vor%

Wenn ich pow(16,54) verwende, bekomme ich:

  

105312291668557186697918027683670432318895095400549111254310977536.0

Code ist wie folgt:

%Vor%

Code ausgeführt mit:

  

gcc main.c -lm

Was mache ich falsch?

    
Simon. 22.01.2014, 16:06
quelle

3 Antworten

16
  

Was mache ich falsch?

Mehrere Dinge:

  • Verwenden Sie %.10e format für die wissenschaftliche Notation mit printf für einen Ausdruck mit zehn Ziffern nach dem Punkt,
  • Gebe int von deinem main ,
  • zurück
  • Denken Sie daran, public nicht zu verwenden, um eine Variable zu benennen, mit der Wahrscheinlichkeit, dass Ihr Programm nach C ++ portiert werden müsste, wobei public ein Schlüsselwort ist.

So können Sie Ihr Programm reparieren:

%Vor%

Demo auf ideone.

    
dasblinkenlight 22.01.2014, 16:10
quelle
6

Hast du es versucht:

%Vor%

Der %e -Spezifizierer steht für die wissenschaftliche Notation, wie in der Dokumentation

beschrieben     
abelenky 22.01.2014 16:09
quelle
3

Wenn Sie eine wissenschaftliche Notation benötigen, müssen Sie den %e Formatbezeichner verwenden:

%Vor%

Außerdem ist public ein Schlüsselwort in C ++ und es wäre daher eine gute Idee, das zu vermeiden und alle anderen Schlüsselwörter , falls dieser Code portabel sein muss.

    
Shafik Yaghmour 22.01.2014 16:11
quelle

Tags und Links