Freigeben über


_fcvt

Konvertiert eine Gleitkommazahl in eine Zeichenfolge. Eine sicherere Version dieser Funktion ist verfügbar; siehe _fcvt_s.

Syntax

char *_fcvt(
   double value,
   int count,
   int *dec,
   int *sign
);

Parameter

value
Zu konvertierende Zahl.

count
Anzahl der Ziffern nach dem Dezimaltrennzeichen.

dec
Zeiger auf die gespeicherte Position der Dezimalstelle.

sign
Zeiger auf den gespeicherten Zeichen-Indikator.

Rückgabewert

_fcvt gibt einen Zeiger auf die Zeichenfolge der Ziffern zurück, NULL bei Fehler.

Hinweise

Mit der _fcvt-Funktion werden Gleitkommazahlen in mit NULL endende Zeichenfolgen konvertiert. Der Parameter value ist die zu konvertierende Gleitkommazahl. _fcvt speichert die Ziffern von value als Zeichenfolge, und fügt das Zeichen NULL ('\0') an. Der count-Parameter gibt die Anzahl der zu speichernden Ziffern nach dem Dezimaltrennzeichen an. Überschüssige Ziffern werden auf count Stellen gerundet. Wenn weniger als count Dezimalstellen vorhanden sind, wird die Zeichenfolge mit Nullen aufgefüllt.

Die Gesamtzahl der von ihnen zurückgegebenen _fcvt Ziffern überschreitet _CVTBUFSIZEnicht.

In der Zeichenfolge werden nur Ziffern gespeichert. Die Position der Dezimalstelle und das Vorzeichen von value können nach dem Aufruf aus dec abgerufen und signiert werden. Der Parameter dec zeigt auf einen ganzzahligen Wert; dieser ganzzahlige Wert gibt die Position der Dezimalstelle im Verhältnis zum Anfang der Zeichenfolge an. Der Wert null oder ein negativer ganzzahliger Wert geben an, dass sich die Dezimalstelle links neben der ersten Ziffer befindet. Der Parameter sign verweist auf eine ganze Zahl, die das Vorzeichen von value angibt. Die ganze Zahl ist auf 0 festgelegt, wenn value positiv ist, und ist auf eine Zahl ungleich null festgelegt, wenn value negativ ist.

_ecvt und _fcvt unterscheiden sich hinsichtlich der Interpretation des Parameters count. Von _ecvt wird count als die Gesamtanzahl der Ziffern in der Ausgabezeichenfolge interpretiert, während count von _fcvt als die Anzahl der Ziffern nach der Dezimalstelle interpretiert wird.

Für die Konvertierung wird von _ecvt und _fcvt ein einzelner, statisch zugewiesener Puffer verwendet. Jeder Aufruf einer dieser Routinen zerstört das Ergebnis des vorherigen Aufrufs.

Diese Funktion überprüft ihre Parameter. Wenn dec oder ist , sign oder count ist NULL0, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die Ausführung fortgesetzt werden darf, errno wird sie auf EINVAL, und NULL wird zurückgegeben.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Anforderungen

Funktion Erforderlicher Header
_fcvt <stdlib.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// crt_fcvt.c
// compile with: /W3
// This program converts the constant
// 3.1415926535 to a string and sets the pointer
// buffer to point to that string.

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   int  decimal, sign;
   char *buffer;
   double source = 3.1415926535;

   buffer = _fcvt( source, 7, &decimal, &sign ); // C4996
   // Note: _fcvt is deprecated; consider using _fcvt_s instead
   printf( "source: %2.10f   buffer: '%s'   decimal: %d   sign: %d\n",
            source, buffer, decimal, sign );
}
source: 3.1415926535   buffer: '31415927'   decimal: 1   sign: 0

Siehe auch

Datenkonvertierung
Mathematische Unterstützung und Gleitkommaunterstützung
atof, , _atof_l_wtof_wtof_l
_ecvt
_gcvt