Fließkommawert ins String konvertieren
-
Hallo,
ich möchte einen Fließkommawert ins String konvertieren. Der Code ist folgendes:
unsigned char str[8]; float pi = 3.141592; sprintf(str, "%g", pi);
Das Problem ist, die letzte Nummer '2' ist nicht da, stattdessen eine 0x00. Waran liegt das?
Ciao
Pully
-
Probier mal %f oder %lf
-
pully schrieb:
unsigned char str[8];
Bisschen knapp bemessen, oder?
-
str ist zwar knapp bemessen, das weiß sprintf aber nicht.
"%g" gibt nur 6 relevante Stellen aus.
Daher musst du die gewünschte Genauikgeit mit angeben.unsigned char str[20]; // sei großzügig :) float pi = 3.141592; sprintf(str, "%.7g", pi);
PS. Nimm lieber gleich double statt float.