Dùng hàm strtod() (string to double) để chuyển chuỗi thành số thực double.
Ví dụ
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
char s[20] = "18.2894 is a number";
char *endptr;
double result = strtod(s, &endptr);
cout << "So sau chuyen doi: " << result;
return 0;
}
Kết quả
So sau chuyen doi: 18.2894
Giải thích: strtod đọc từ đầu chuỗi, parse số thực cho đến khi gặp ký tự không hợp lệ (' '), dừng lại. endptr trỏ đến ký tự dừng (' ' trước is).
Lưu ý:
- Luôn kiểm tra
endptrđể biết có parse thành công không: nếuendptr == sthì không parse được số nào. strtodbỏ qua whitespace đầu chuỗi.- Trong C++ hiện đại, ưu tiên
std::stod(string) hoặcstd::from_chars(C++17, nhanh, không exception).