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 einen Gleitkommawert in eine Zeichenfolge, die in einem Puffer gespeichert wird. Eine sicherere Version dieser Funktion ist verfügbar; siehe _gcvt_s.
Syntax
char *_gcvt(
double value,
int digits,
char *buffer
);
Parameter
value
Zu konvertierender Wert.
digits
Anzahl der gespeicherten signifikanten Ziffern.
buffer
Speicherort für das Ergebnis.
Rückgabewert
_gcvt gibt einen Zeiger zur Zeichenfolge der Ziffern zurück.
Hinweise
Die _gcvt Funktion konvertiert ein Gleitkomma value in eine Zeichenfolge (mit einem Dezimaltrennzeichen und ein mögliches Zeichen-Byte) und speichert die Zeichenfolge in buffer. Der buffer sollte groß genug für den konvertierten Wert und ein abschließendes Zeichen NULL sein, das automatisch angefügt wird. Wenn eine Puffergröße digits + 1 verwendet wird, überschreibt die Funktion das Pufferende. Die Überschreibung erfolgt, da die konvertierte Zeichenfolge einen Dezimalkomma enthält und auch Zeichen- und Exponenteninformationen enthalten kann. Die Funktion berücksichtigt nicht den Überlauf. _gcvt versucht digits-Ziffern im Dezimalformat zu erzeugen. Wenn dies nicht möglich ist, werden Ziffern im exponentiellen Format erzeugt digits . Bei der Konvertierung können Nachstellen von Nullen unterdrückt werden.
Ein buffer der Länge _CVTBUFSIZE reicht für alle Gleitkommawerte aus.
Diese Funktion überprüft ihre Parameter. Wenn buffer den Wert NULLannimmt, wird der Handler für ungültige Parameter aufgerufen, wie in Parameter Validation. Wenn die weitere Ausführung zugelassen wird, legt diese Funktion errno auf EINVAL fest und gibt NULL zurück.
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
| Routine | Erforderlicher Header |
|---|---|
_gcvt |
<stdlib.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_gcvt.c
// compile with: /W3
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main( void )
{
char buffer[_CVTBUFSIZE];
double value = -1234567890.123;
printf( "The following numbers were converted by _gcvt(value,12,buffer):\n" );
_gcvt( value, 12, buffer ); // C4996
// Note: _gcvt is deprecated; consider using _gcvt_s instead
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value *= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value *= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value *= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
printf( "\n" );
value = -12.34567890123;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value /= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value /= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value /= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
}
The following numbers were converted by _gcvt(value,12,buffer):
buffer: '-1234567890.12' (14 chars)
buffer: '-12345678901.2' (14 chars)
buffer: '-123456789012' (13 chars)
buffer: '-1.23456789012e+012' (19 chars)
buffer: '-12.3456789012' (14 chars)
buffer: '-1.23456789012' (14 chars)
buffer: '-0.123456789012' (15 chars)
buffer: '-1.23456789012e-002' (19 chars)
Siehe auch
Datenkonvertierung
Mathematische Unterstützung und Gleitkommaunterstützung
atof, , _atof_l_wtof_wtof_l
_ecvt
_fcvt