2016-11-18 4 views
0

enter image description here Warum in C, wenn ich drucke ein Doppel Typ Variable mit% lf es zeigt 0,000000 ... aber wenn ich nur % f es zeigt den Wunsch Ergebnis? Wenn wir eine Eingabe verwenden, verwenden wir% lf für die Variable vom Typ double. Warum bekomme ich 0.0000 statt 3.0000?Druckdatentyp Double in C

+3

Bitte ein [MCVE] anzeigen. –

+4

Dies ist wahrscheinlich bereits beantwortet in: http://stackoverflow.com/questions/19952200/scanf-printf-double-variable-c –

+1

Die Antwort auf die Frage http://stackoverflow.com/questions/19952200/scanf-printf -double-variable-c ist nicht in der Lage, eine perfekte Definition meines geteilten Bildes zu geben. Warum gibt es 0,0000 statt 3,0000 –

Antwort

0
for printf %f and %lf can be used interchangeably for floats and double. 
for scanf %f formats float 
for scanf %lf formats double 

Grund ist, dass scanf Take Zeiger (Adresse der Variablen) als Eingabe in beiden Fällen. Im Fall von printf, das tatsächliche Variablen (float oder double) als ineinander konvertierbare Eingabeparameter verwendet (type casting)