_ecvt
double
Mengonversi angka menjadi string. Versi fungsi ini yang lebih aman tersedia; lihat _ecvt_s
.
Sintaks
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
Parameter
value
Angka yang akan dikonversi.
count
Jumlah digit yang disimpan.
dec
Posisi titik desimal tersimpan.
sign
Tanda angka yang dikonversi.
Nilai hasil
_ecvt
mengembalikan penunjuk ke string digit; NULL
jika terjadi kesalahan.
Keterangan
Fungsi ini _ecvt
mengonversi angka floating-point menjadi string karakter. Parameter value
adalah angka floating-point yang akan dikonversi. Fungsi ini menyimpan hingga count
digit value
sebagai string dan menambahkan karakter null ('\0'). Jika jumlah digit melebihi value
count
, digit urutan rendah dibulatkan. Jika ada kurang dari count
digit, string diisi dengan nol.
Jumlah total digit yang dikembalikan _ecvt
oleh tidak akan melebihi _CVTBUFSIZE
.
Hanya digit yang disimpan dalam string. Posisi titik desimal dan tanda value
dapat diperoleh dari dec
dan sign
setelah panggilan. Parameter dec
menunjuk ke nilai bilangan bulat yang memberikan posisi titik desimal sehubungan dengan awal string. Nilai bilangan bulat 0 atau negatif menunjukkan bahwa titik desimal terletak di sebelah kiri digit pertama. Parameter sign
menunjuk ke bilangan bulat yang menunjukkan tanda angka yang dikonversi. Jika nilai bilangan bulat adalah 0, angkanya positif. Jika tidak, angkanya negatif.
Perbedaan antara _ecvt
dan _fcvt
berada dalam interpretasi count
parameter. _ecvt
count
menafsirkan sebagai jumlah total digit dalam string output, sedangkan _fcvt
menafsirkan count
sebagai jumlah digit setelah titik desimal.
_ecvt
dan _fcvt
gunakan satu buffer yang dialokasikan secara statis untuk konversi. Setiap panggilan ke salah satu rutinitas ini menghancurkan hasil panggilan sebelumnya.
Fungsi ini memvalidasi parameternya. Jika dec
atau sign
, NULL
atau count
adalah 0, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, errno
diatur ke EINVAL, dan NULL
dikembalikan.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Fungsi | Header yang diperlukan |
---|---|
_ecvt |
<stdlib.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_ecvt.c
// compile with: /W3
// This program uses _ecvt to convert a
// floating-point number to a character string.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int decimal, sign;
char *buffer;
int precision = 10;
double source = 3.1415926535;
buffer = _ecvt( source, precision, &decimal, &sign ); // C4996
// Note: _ecvt is deprecated; consider using _ecvt_s instead
printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d\n",
source, buffer, decimal, sign );
}
source: 3.1415926535 buffer: '3141592654' decimal: 1 sign: 0
Lihat juga
Konversi data
Dukungan matematika dan titik mengambang
atof
, , _atof_l
_wtof
,_wtof_l
_fcvt
_gcvt