Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kayan nokta değerini arabelleğe depoladığı bir dizeye dönüştürür. Bu işlevin daha güvenli bir sürümü kullanılabilir; bkz _gcvt_s. .
Sözdizimi
char *_gcvt(
double value,
int digits,
char *buffer
);
Parametreler
value
Dönüştürülecek değer.
digits
Depolanan önemli basamak sayısı.
buffer
Sonuç için depolama konumu.
Dönüş değeri
_gcvt basamak dizesine bir işaretçi döndürür.
Açıklamalar
İşlev, _gcvt kayan noktayı value bir karakter dizesine (ondalık nokta ve olası bir işaret baytını içeren) dönüştürür ve dizeyi içinde bufferdepolar. , buffer dönüştürülen değerin yanı sıra otomatik olarak eklenen bir sonlandırıcı null karaktere uyacak kadar büyük olmalıdır. + 1 arabellek boyutu digits kullanılırsa, işlev arabelleğin sonunun üzerine yazar. Üzerine yazma işlemi, dönüştürülen dize bir ondalık nokta içerdiğinden ve aynı zamanda işaret ve üs bilgileri içerebildiğinden gerçekleşir. İşlev taşma işlemini hesaba bağlamaz. _gcvt ondalık biçimde basamak üretmeye digits çalışır. Yapamazsa, basamakları üstel biçimde üretir digits . Sondaki sıfırlar dönüştürmede gizlenebilir.
Herhangi buffer bir kayan nokta değeri için uzunluk _CVTBUFSIZE yeterlidir.
Bu işlev parametrelerini doğrular. ise buffer NULL, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, bu işlev olarak EINVAL ayarlanır errno ve döndürürNULL.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Gereksinimler
| Yordam | Gerekli başlık |
|---|---|
_gcvt |
<stdlib.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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)
Ayrıca bkz.
Veri dönüştürme
Matematik ve kayan nokta desteği
atof, _atof_l, _wtof, _wtof_l
_ecvt
_fcvt