Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Konvertiert eine double-Zahl in eine Zeichenfolge. Eine sicherere Version dieser Funktion ist verfügbar; siehe _ecvt_s.
Syntax
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
Parameter
value
Zu konvertierende Zahl.
count
Anzahl der gespeicherten Ziffern.
dec
Gespeicherte Position der Dezimalstelle.
sign
Vorzeichen der konvertierten Zahl.
Rückgabewert
_ecvt gibt einen Zeiger auf die Zeichenfolge der Ziffern zurück; NULL wenn ein Fehler aufgetreten ist.
Hinweise
Mit der _ecvt-Funktion werden Gleitkommazahlen in Zeichenfolgen konvertiert. Der Parameter value ist die zu konvertierende Gleitkommazahl. Mit dieser Funktion werden bis zu count Ziffern von value als Zeichenfolge gespeichert und das Zeichen NULL ('\0') angefügt. Wenn in value mehr als count Zeichen vorhanden sind, wird die untere Ziffer gerundet. Wenn weniger als count Ziffern vorhanden sind, wird die Zeichenfolge mit Nullen aufgefüllt.
Die Gesamtzahl der von ihnen zurückgegebenen _ecvt 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 und sign abgerufen werden. Der Parameter dec zeigt auf einen Integer-Wert, der die Position der Dezimalstelle im Verhältnis zum Zeichenfolgenanfang angibt. Der Wert 0 oder ein negativer Integer-Wert geben an, dass sich die Dezimalstelle links neben der ersten Ziffer befindet. Der Parameter sign zeigt auf einn Integer-Wert, der das Vorzeichen der konvertierten Zahl angibt. Wenn der Integer-Wert 0 ist, ist die Zahl positiv. Andernfalls ist die Zahl negativ.
_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. Bei jedem Aufruf dieser Routinen wird das Ergebnis des vorherigen Aufrufs zerstört.
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 auf EINVAL festgelegt und NULL 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 |
|---|---|
_ecvt |
<stdlib.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_ecvt.c
// compile with: /W3
// This program uses _ecvt to convert a
// floating-point number to a character string.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int decimal, sign;
char *buffer;
int precision = 10;
double source = 3.1415926535;
buffer = _ecvt( source, precision, &decimal, &sign ); // C4996
// Note: _ecvt is deprecated; consider using _ecvt_s instead
printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d\n",
source, buffer, decimal, sign );
}
source: 3.1415926535 buffer: '3141592654' decimal: 1 sign: 0
Siehe auch
Datenkonvertierung
Mathematische Unterstützung und Gleitkommaunterstützung
atof, , _atof_l_wtof_wtof_l
_fcvt
_gcvt