Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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