_ecvt
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 _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
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 NULL
0, 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