Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

ecvt - Gleitkommazahl in Zeichenkette umwandeln

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

char *ecvt(double wert, int anz, int *dez_pkt, int *vorzeichen);

ecvt wandelt einen Gleitkommawert wert in eine Zeichenkette aus anz Ziffern um und liefert als Ergebnis einen Zeiger auf diese Zeichenkette.

Die Zeichenkette beginnt mit der ersten Ziffer ungleich 0 aus dem umzuwandelnden Gleitkommawert, d.h. führende Nullen werden nicht übernommen.

Dezimalpunkt und ein ggf. negatives Vorzeichen sind nicht Bestandteil der Zeichenkette.
ecvt liefert jedoch die Position des Dezimalpunktes und das Vorzeichen in Ergebnisparametern zurück.

Parameter

double wert

Gleitkommawert, der für die Ausgabe aufbereitet werden soll.

int anz

Anzahl der Ziffern in der Ergebniszeichenkette (gerechnet ab der ersten Ziffer ungleich 0 aus dem umzuwandelnden Gleitkommawert).

Ist anz kleiner als die Ziffernzahl von wert, wird die niedrigste Stelle gerundet.
Ist anz größer, wird rechtsbündig mit Nullen aufgefüllt.

int *dez_pkt

Zeiger auf eine ganze Zahl, die die Position des Dezimalpunktes in der Ergebniszeichenkette angibt.

positive Zahl: Position relativ zum Beginn der Ergebniszeichenkette.
negative Zahl bzw. 0: Dezimalpunkt steht links vor der ersten Ziffer.

int *vorzeichen

Zeiger auf eine ganze Zahl, die das Vorzeichen der Ergebniszeichenkette angibt.

0: das Vorzeichen ist positiv
ungleich 0: das Vorzeichen ist negativ

Returnwert

Zeiger auf die umgewandelte Zeichenkette

bei Erfolg. ecvt schließt die Zeichenkette mit dem Nullbyte (\0) ab.

Hinweise

Falsche Parameter, etwa ein integer- statt double-Wert, führen zum Programmabbruch!

Beachten Sie, dass die Argumente dez_pkt und vorzeichen Zeiger sein müssen!

ecvt schreibt sein Ergebnis in einen C-internen Datenbereich, der bei jedem Aufruf überschrieben wird! Denselben Datenbereich benutzt auch die Funktion fcvt.

Beispiel

Folgendes Programm liest einen Gleitkommawert x ein, wandelt ihn nach der Angabe in n um und gibt ihn als Zeichenkette wieder aus. Zusätzlich werden das berechnete Vorzeichen sign und die Position des Dezimalpunktes dec_p ausgegeben.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
  double x;
  int n, dec_p, sign;
  char *s;
  printf("Bitte Gleitkommazahl eingeben:  \n");
  if (scanf("%lf", &x) == 1)
  {
    printf("Wieviel signifikante Stellen :  \n");
    if (scanf("%d", &n) == 1)
    {
      s = ecvt(x, n, &dec_p, &sign);
      printf("Die Zeichenkette lautet: %s\n", s);
      printf("Das Vorzeichen ist %s \n",
             (sign == 0 ? "positiv" : "negativ"));
      printf("Position des Dezimalpunktes ist %d \n", dec_p);
    }
  }
  return 0;
}

Siehe auch  fcvt, gcvt