Freigeben über


_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 _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