float to string mit *ecvt

Gast #285419
Lesenswert?

Hallo@all,

hat schonmal jemand mit der Funktion *ecvt gearbeitete?
Ich möcht eine Float-variable (4-Byte) auf meinem LCD mit
meiner Printfunktion ausgeben:

void LCD_Print (char *string)
{
 while (*string)
      {
        send_char (*string);
  string++;
      }
}

Ich bekomme es einfach nicht hin die Funktion richtig aufzurufen-
laut Buch steht:  char *ecvt(double value, int digit,int *decpt, int
*sign) - value/Wert,
digit/Zeichenanzahl-decpt/LageKommastelle-sign/Vorzeichen.

Kann mir jemand ein Beispiel geben, wie ich die Funktion richtig
benutzte und den Rückgabewert an meine LCD_Print Routine übergebe?
Noch ne zweite Frage-wenn ich 2 charakter Datentypen zu einem Float
zusammen möchte (brauch ich für spätere Berechnungen) kann ich das so
machen - value ist ein float, high und low sind character:
value = high>>8 | low;

Danke schonmal
Martin
Persönliche Seite #285420
Lesenswert?

.

  int decimal, sign;
  char *buffer;
  int precision = 10;
  double source = 3.1415926535;

  buffer = _ecvt(source, precision, &decimal, &sign);

  printf("source: %2.10f\n", source);
  printf("buffer: '%s'\n", buffer);
  printf("decimal: %d\n", decimal);
  printf("sign: %d\n", sign);


Gibt folgendes aus:

  source: 3.1415926535
  buffer: '3141592654'
  decimal: 1
  sign: 0

Für Deine Anwendung sähe das dann so aus:

  // Variablen wie vor

  buffer = _ecvt(source, precision, &decimal, &sign);

  LCD_Print(buffer);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren