Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

fcvt - Gleitkommazahl in Zeichenkette umwandeln

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

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

fcvt wandelt einen Gleitkommawert wert in eine Zeichenkette aus Ziffern um und liefert als Ergebnis einen Zeiger auf diese Zeichenkette. Das Ausgabeformat entspricht dem FORTRAN F-Format.

Die Zeichenkette beginnt mit der ersten Ziffer ungleich 0 aus dem umzuwandelnden Gleitkommawert und enthält anz Stellen nach dem Dezimalpunkt.

Dezimalpunkt und ein ggf. negatives Vorzeichen sind nicht Bestandteil der Zeichenkette.
fcvt 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 nach dem Dezimalpunkt.
Ist anz kleiner als die Ziffernzahl von wert nach dem Dezimalpunkt, wird die niedrigste Stelle (wie bei FORTRAN F-Format) 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. fcvt 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!

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

Beispiel

Folgendes Programm liest einen Gleitkommawert x ein, wandelt ihn nach der Angabe in n gemäß dem FORTRAN F-Format 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;
  printf("Bitte Gleitkommazahl eingeben:  \n");
  if (scanf("%lf", &x) == 1)
  {
    printf("Wieviel signifikante Stellen :  \n");
    if (scanf("%d", &n) == 1)
    {
      printf("Die Zahl lautet umgewandelt :  %s \n",
             fcvt(x, n, &dec_p, &sign));
      printf("Das Vorzeichen ist %s \n",
             (sign == 0 ? "positiv" : "negativ"));
      printf("Position des Dezimalpunktes: %d \n", dec_p);
    }
  }
  return 0;
}

Siehe auch  ecvt, gcvt