Double Wert in Char-String umwandeln
-
Hallo
ich möchte einen Double Wert in ein char umwandeln.
double dwert = 0.0045;
char cwert[7];sprintf(cwert, "%2.4lf", dwert );
Inhalt von cwert:
cwert[0] = '0';
cwert[1] = '.';
cwert[2] = '0';
cwert[3] = '0';
cwert[4] = '4';
cwert[5] = '5';
cwert[6] = '\0';Das Problem ist aber, dass der das Dezimaltrennzeichen mit abspeichert. Ich möchte, dass immer 2 Stellen als Vorkommastellen und 4 als Nachkommastellen umgewandelt werden.
So soll der Inhalt von cwert ausschauen:
cwert[0] = '0';
cwert[1] = '0';
cwert[2] = '0';
cwert[3] = '0';
cwert[4] = '4';
cwert[5] = '5';
cwert[6] = '\0';Geht das mit sprintf? Oder wie kann man sowas machen?
Vielen Dank
cu
George
-
Multipliziere den Wert mit 10000 und konvertiere ihn anschließend als int:
double dwert=0.0045; char cwert[7]; sprinft(cwert,"%06d",(int)(10000*dwert));
-
das Leben kann so einfach sein....
recht herzlichen Dank
cu
George
-
sorry aber gleich noch ein Problem:
wie kann man die führenden Nullen erhalten?
So soll es aussschauen:
cwert[0] = '0';
cwert[1] = '0';
cwert[2] = '0';
cwert[3] = '0';
cwert[4] = '4';
cwert[5] = '5';
cwert[6] = '\0';So wird es angezeigt:
cwert[0] = ' ';
cwert[1] = ' ';
cwert[2] = ' ';
cwert[3] = ' ';
cwert[4] = '4';
cwert[5] = '5';
cwert[6] = '\0';
-
indem du als Format "%06d" angibst - das füllt das Ausgabefeld mit 0 auf (bzw. sollte). Wenn das nicht klappt, kannst du hinterher über den String laufen und die Leerzeichen selber in '0' umwechseln.
-
bei mir funzt es so.
gibst du es aus oder schaust du es im debugger an?
-
super - geht wunderbar:))
Vielen Dank nochmals an euch beiden
Noch einen schönen sonnigen Nachmittag...