Bagikan melalui


_gcvt

Mengonversi nilai floating-point menjadi string, yang disimpannya dalam buffer. Versi fungsi ini yang lebih aman tersedia; lihat _gcvt_s.

Sintaks

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

Parameter

value
Nilai yang akan dikonversi.

digits
Jumlah digit signifikan yang disimpan.

buffer
Lokasi penyimpanan untuk hasilnya.

Nilai hasil

_gcvt mengembalikan penunjuk ke string digit.

Keterangan

Fungsi ini _gcvt mengonversi floating-point value menjadi string karakter (yang mencakup titik desimal dan byte tanda yang mungkin) dan menyimpan string di buffer. buffer harus cukup besar untuk mengakomodasi nilai yang dikonversi ditambah karakter null yang mengakhiri, yang ditambahkan secara otomatis. Jika ukuran buffer + digits 1 digunakan, fungsi akan menimpa akhir buffer. Penimpaan terjadi karena string yang dikonversi menyertakan titik desimal dan juga dapat berisi informasi tanda dan eksponen. Fungsi ini tidak memperhitungkan luapan. _gcvt mencoba menghasilkan digits digit dalam format desimal. Jika tidak bisa, itu menghasilkan digits digit dalam format eksponensial. Nol berikutnya mungkin ditekan dalam konversi.

Panjang buffer _CVTBUFSIZE cukup untuk nilai titik mengambang apa pun.

Fungsi ini memvalidasi parameternya. Jika buffer adalah NULL, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi ini diatur errno ke EINVAL dan mengembalikan NULL.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Rutin Header yang diperlukan
_gcvt <stdlib.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// 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)

Lihat juga

Konversi data
Dukungan matematika dan titik mengambang
atof, , _atof_l_wtof,_wtof_l
_ecvt
_fcvt