_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 _CVTBUFSIZE
nicht.
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 NULL
0, 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