Freigeben über


_gcvt

Konvertiert einen Gleitkommawert in eine Zeichenfolge, die es in einem Puffer gespeichert werden. Eine sicherere Version dieser Funktion ist verfügbar; finden Sie unter _gcvt_s.

char *_gcvt( 
   double value,
   int digits,
   char *buffer 
);

Parameter

  • value
    Der zu konvertierende Wert.

  • digits
    Anzahl der signifikanten Ziffern gespeichert.

  • buffer
    Speicherort für das Ergebnis.

Rückgabewert

_gcvt gibt einen Zeiger zur Zeichenfolge aus Ziffern zurück.

Hinweise

Die _gcvt-Funktion konvertiert ein Gleitkommawert value als Zeichenfolge (die ein Dezimaltrennzeichen und ein beliebiges Zeichenbyte enthält) und die Zeichenfolge in buffer. buffer sollte so groß sein, den konvertierten Wert sowie ein NULL anzupassen, das automatisch angefügt wird. Wenn eine Puffergröße von digits + 1 verwendet wird, überschreibt die Funktion das Ende des Puffers. Dies ist, da die konvertierte Zeichenfolge ein Dezimaltrennzeichen enthält und Zeichentasten und Exponenteninformationen enthalten kann. Es gibt keine Bereitstellung Überläufe. _gcvt versucht, digits Ziffern im Dezimalformat zu erzeugen. Wenn das nicht der Fall ist, erzeugt es digits Ziffern im exponentiellen Format. Nachfolgende Nullen würden in der Konvertierung unterdrückt werden.

buffer der Länge _CVTBUFSIZE ist für jeden Gleitkommawert ausreichend.

Diese Funktion überprüft ihre Parameter. Wenn buffer den Wert NULL annimmt, wird der ungültige Parameterhandler, wie in Parametervalidierung beschrieben, aufgerufen. Wenn die weitere Ausführung zugelassen wird, legt diese Funktion errno auf EINVAL fest und gibt NULL zurück.

Anforderungen

Routine

Erforderlicher Header

_gcvt

<stdlib.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

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) );
}
  

.NET Framework-Entsprechung

System::Convert::ToString

Siehe auch

Referenz

Datenkonvertierung

Gleitkommaunterstützung

atof, _atof_l, _wtof, _wtof_l

_ecvt

_fcvt