_atodbl
, _atodbl_l
, _atoldbl
, _atoldbl_l
, _atoflt
, _atoflt_l
Mengonversi string menjadi ganda (_atodbl
), ganda panjang (_atoldbl
), atau float (_atoflt
).
Sintaks
int _atodbl( _CRT_DOUBLE * value, char * str );
int _atodbl_l ( _CRT_DOUBLE * value, char * str, _locale_t locale );
int _atoldbl( _LDOUBLE * value, char * str );
int _atoldbl_l ( _LDOUBLE * value, char * str, _locale_t locale );
int _atoflt( _CRT_FLOAT * value, const char * str );
int _atoflt_l( _CRT_FLOAT * value, const char * str, _locale_t locale );
Parameter
value
Nilai ganda, ganda panjang, atau float yang dihasilkan dengan mengonversi string menjadi nilai floating-point. Nilai-nilai ini dibungkus dalam struktur.
str
String yang akan diurai untuk dikonversi menjadi nilai floating-point.
locale
Lokal yang akan digunakan.
Nilai hasil
Mengembalikan 0 jika berhasil. Kemungkinan kode kesalahan adalah _UNDERFLOW
atau _OVERFLOW
, yang ditentukan dalam file <header math.h>.
Keterangan
Fungsi-fungsi ini mengonversi string menjadi nilai floating-point. Perbedaan antara fungsi-fungsi ini dan atof
keluarga fungsi adalah bahwa fungsi-fungsi ini tidak menghasilkan kode floating-point dan tidak menyebabkan pengecualian perangkat keras. Sebagai gantinya, kondisi kesalahan dilaporkan sebagai kode kesalahan.
Jika string tidak memiliki interpretasi yang valid sebagai nilai floating-point, value
diatur ke nol, dan nilai yang dikembalikan adalah nol.
Versi fungsi-fungsi ini yang memiliki _l
akhiran identik dengan versi yang tidak memiliki akhiran, kecuali bahwa fungsi tersebut locale
menggunakan parameter yang diteruskan alih-alih lokal utas saat ini.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Rutinitas | Header yang diperlukan |
---|---|
_atodbl , _atoldbl , _atoflt _atodbl_l , _atoldbl_l , _atoflt_l |
<stdlib.h> |
Contoh
// crt_atodbl.c
// Uses _atodbl to convert a string to a double precision
// floating point value.
#include <stdlib.h>
#include <stdio.h>
int main()
{
char str1[256] = "3.141592654";
char abc[256] = "abc";
char oflow[256] = "1.0E+5000";
_CRT_DOUBLE dblval;
_CRT_FLOAT fltval;
int retval;
retval = _atodbl(&dblval, str1);
printf("Double value: %lf\n", dblval.x);
printf("Return value: %d\n\n", retval);
retval = _atoflt(&fltval, str1);
printf("Float value: %f\n", fltval.f);
printf("Return value: %d\n\n", retval);
// A non-floating point value: returns 0.
retval = _atoflt(&fltval, abc);
printf("Float value: %f\n", fltval.f);
printf("Return value: %d\n\n", retval);
// Overflow.
retval = _atoflt(&fltval, oflow);
printf("Float value: %f\n", fltval.f);
printf("Return value: %d\n\n", retval);
return 0;
}
Double value: 3.141593
Return value: 0
Float value: 3.141593
Return value: 0
Float value: 0.000000
Return value: 0
Float value: inf
Return value: 3
Baca juga
Konversi data
Dukungan matematika dan titik mengambang
Lokal
atof
, _atof_l
, _wtof
, _wtof_l
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk