Forum: Compiler & IDEs float Warning in sprintf() nervt


von Marcel (Gast)


Lesenswert?

bei folgender Konsterlation bekomme ich vom Compiler immer eine
Fehlermeldung. Wie bekomme ich diese weg? Funktionieren tut es
zumindest.

int main (void)
{
    char  cBuffer[10];
    float fFoo = 1.5;

    sprintf( cBuffer, "%.2f", fFoo );

    while(1);

    return 0;
}

warning: double format, float arg (arg 3)

%f steht doch für float?

von Karl H. (kbuchegg)


Lesenswert?

Nein.
%f steht nur bei scanf für float.
Da printf eine variadische Funktion ist, wird jeder
float immer in einen double gewandelt. Folgerichtig
steht %f bei printf für double.

    sprintf( cBuffer, "%.2f", (double)fFoo );

sollte die Warnung beseitigen.

von Marcel (Gast)


Lesenswert?

Besten Dank ;-)

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
Noch kein Account? Hier anmelden.