strtof
, _strtof_l
, wcstof
, _wcstof_l
Mengonversi string menjadi nilai floating-point presisi tunggal.
Sintaks
float strtof(
const char *strSource,
char **endptr
);
float _strtof_l(
const char *strSource,
char **endptr,
_locale_t locale
);
float wcstof(
const wchar_t *strSource,
wchar_t **endptr
);
float wcstof_l(
const wchar_t *strSource,
wchar_t **endptr,
_locale_t locale
);
Parameter
strSource
String yang dihentikan null untuk dikonversi.
endptr
Arahkan ke karakter yang menghentikan pemindaian.
locale
Lokal yang akan digunakan.
Nilai hasil
strtof
mengembalikan nilai angka floating-point, kecuali ketika representasi akan menyebabkan luapan, dalam hal ini fungsi mengembalikan +/-HUGE_VALF
. Tanda HUGE_VALF
cocok dengan tanda nilai yang tidak dapat diwakili. strtof
mengembalikan 0 jika tidak ada konversi yang dapat dilakukan atau terjadi aliran bawah.
wcstof
mengembalikan nilai secara analog ke strtof
. Untuk kedua fungsi, errno
diatur ke ERANGE
jika luapan atau aliran bawah terjadi dan handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter.
Untuk informasi selengkapnya tentang kode pengembalian, lihat errno
, , _doserrno
_sys_errlist
, dan _sys_nerr
.
Keterangan
Setiap fungsi mengonversi string strSource
input menjadi float
. Fungsi ini strtof
dikonversi strSource
ke nilai presisi tunggal. strtof
berhenti membaca string strSource
pada karakter pertama yang tidak dapat dikenali sebagai bagian dari angka. Karakter ini mungkin karakter null yang mengakhiri. wcstof
adalah versi karakter luas dari strtof
; argumennya strSource
adalah string karakter lebar. Jika tidak, fungsi-fungsi ini berulah identik.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
TCHAR. Rutinitas H | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tcstof |
strtof |
strtof |
wcstof |
_tcstof_l |
_strtof_l |
_strtof_l |
_wcstof_l |
LC_NUMERIC
Pengaturan kategori lokal saat ini menentukan pengenalan karakter radix di strSource
; untuk informasi selengkapnya, lihat setlocale
, _wsetlocale
. Fungsi yang tidak memiliki _l
akhiran menggunakan lokal saat ini; yang memiliki akhiran identik kecuali menggunakan lokal yang diteruskan sebagai gantinya. Untuk informasi selengkapnya, lihat Lokal.
Jika endptr
bukan NULL
, penunjuk ke karakter yang menghentikan pemindaian disimpan di lokasi yang ditujukkan oleh endptr
. Jika tidak ada konversi yang dapat dilakukan (tidak ada digit valid yang ditemukan atau basis yang tidak valid ditentukan), nilai strSource
disimpan di lokasi yang ditunjukkan oleh endptr
.
strtof
strSource
mengharapkan untuk menunjuk ke string formulir berikut:
[whitespace
] [sign
] [digits
] [.digits
] [{e
| E
} [sign
] digits
]
whitespace
Mungkin terdiri dari karakter spasi dan tab, yang diabaikan; sign
adalah plus (+
) atau minus (-
); dan digits
adalah satu atau beberapa digit desimal. Jika tidak ada digit yang muncul sebelum karakter radiks, setidaknya satu harus muncul setelah karakter radiks. Digit desimal dapat diikuti oleh eksponen, yang terdiri dari huruf pengantar (e
atau E
) dan bilangan bulat yang ditandatangani secara opsional. Jika tidak ada bagian eksponen atau karakter radiks yang muncul, karakter radiks diasumsikan untuk mengikuti digit terakhir dalam string. Karakter pertama yang tidak cocok dengan formulir ini menghentikan pemindaian.
Versi UCRT dari fungsi-fungsi ini tidak mendukung konversi huruf eksponen gaya Fortran (d
atau D
) . Ekstensi non-standar ini didukung oleh versi CRT yang lebih lama, dan mungkin merupakan perubahan yang melanggar untuk kode Anda.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
strtof , _strtof_l |
C: <stdlib.h> C++: <cstdlib> atau <stdlib.h> |
wcstof , _wcstof_l |
C: <stdlib.h> atau <wchar.h> C++: <cstdlib>, <stdlib.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_strtof.c
// This program uses strtof to convert a
// string to a single-precision value.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char *string;
char *stopstring;
float x;
string = "3.14159This stopped it";
x = strtof(string, &stopstring);
printf("string = %s\n", string);
printf(" strtof = %f\n", x);
printf(" Stopped scan at: %s\n\n", stopstring);
}
string = 3.14159This stopped it
strtof = 3.141590
Stopped scan at: This stopped it
Baca juga
Konversi data
Dukungan matematika dan titik mengambang
Interpretasi urutan karakter multibyte
Lokal
String ke fungsi nilai numerik
strtod
, _strtod_l
, wcstod
, _wcstod_l
strtol
, wcstol
, _strtol_l
, _wcstol_l
strtoul
, _strtoul_l
, wcstoul
, _wcstoul_l
atof
, _atof_l
, _wtof
, _wtof_l
localeconv
_create_locale
, _wcreate_locale
_free_locale
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