Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Cách chuyển chuỗi sang double trong C/C++

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ếu endptr == s thì không parse được số nào.
  • strtod bỏ qua whitespace đầu chuỗi.
  • Trong C++ hiện đại, ưu tiên std::stod (string) hoặc std::from_chars (C++17, nhanh, không exception).