#include <stdio.h>
#include <stdlib.h>
int main(void)
{ double x=2.666666666666;
float wertx;
printf("eigentlich x=%lf\n",x);
wertx=x;
printf("wert von x = %f",wertx);
getchar();
return EXIT_SUCCESS;
}
bekomme folgende fehlermeldung
10 untitled1.c
warning: use of `l' length character with `f' type character
das FORMATZEICHEN für double ist doch %lf, also warum hat mein compiler
dann ein problem damit?
kann mir jemand helfen!???
1000d DANK
>Raphael
Floats sind nur %f. Je nachdem ob und wieviel Kommastellen brqauchst, tut es %.1f
es geht mir aber darum, dass mein double wert siehe -> double x=2.666666666666; float wertx; printf("eigentlich x=%lf\n",x); NICHT RICHTIG AUSGEGEBEN WIRD, AUF GRUND DER FEHLERMELDUNG. 10 untitled1.c warning: use of `l' length character with `f' type character %lf ist nicht %1f (kleines L , nicht die zahl 1 !!!) %lf gross geschrieben wäre %LF ... aber %Lf ist das formatzeichen für longdouble!
Das Formatierzeichen für double ist bei printf %f Das Formatierzeichen für float ist bei printf ebenfalls %f Verwirrt? Die Parameter-Übergaberegeln von C verlangen, dass floats bei variadischen Funktionen als double übergeben wird. Als Folge davon, kriegt printf nie einen float auch nur zu Gesicht, immer nur double und daher kann für float und double dasselbe Formatierzeichen, nämlich %f, benutzt werden. Aber: Bei scanf ist das anders, denn dort wird ja ein Pointer übergeben, und für scanf ist es schon wichtig zu wissen, ob das jetzt ein Pointer auf einen double oder ein Pointer auf einen float ist. Daher gibt es dort 2 Formatierzeichen: %lf für einen Pointer auf double %f für einen Pointer auf float %lf ist also bei printf gar kein offizielles Formatierzeichen. Aus Gründen der Symetrie haben aber einige Compilerbauer printf zusätzlich noch mit einem %lf ausgestattet, damit eine gewisse Angleichung mit scanf vorhanden ist (die eigentlich nicht notwendig ist, wie oben schon geschildert). Dein Compiler sieht das halt strikter.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.