Chuỗi C ++ thành float / double và ngược lại

Trong hướng dẫn này, chúng ta sẽ học cách chuyển đổi chuỗi thành số dấu phẩy động và ngược lại với sự trợ giúp của các ví dụ.

Chuỗi C ++ để chuyển đổi float và kép

Cách dễ nhất để chuyển đổi một chuỗi thành số dấu phẩy động là sử dụng các hàm C ++ 11 sau:

  • std :: stof () - chuyển đổi stringthànhfloat
  • std :: stod () - chuyển đổi stringthànhdouble
  • std :: stold () - chuyển đổi stringthành long double.

Các hàm này được định nghĩa trong stringtệp tiêu đề.

Ví dụ 1: Chuỗi C ++ thành float và double

 #include #include int main() ( std::string str = "123.4567"; // convert string to float float num_float = std::stof(str); // convert string to double double num_double = std::stod(str); std:: cout<< "num_float = " << num_float << std::endl; std:: cout<< "num_double = " << num_double << std::endl; return 0; )

Đầu ra

 num_float = 123.457 num_double = 123.457

Ví dụ 2: Mảng char trong C ++ để nhân đôi

Chúng ta có thể chuyển đổi một charmảng thành doublebằng cách sử dụng std::atof()hàm.

 #include // cstdlib is needed for atoi() #include int main() ( // declaring and initializing character array char str() = "123.4567"; double num_double = std::atof(str); std::cout << "num_double = " << num_double << std::endl; return 0; )

Đầu ra

 num_double = 123.457

Chuyển đổi C ++ float và double sang string

Chúng tôi có thể chuyển đổi floatdoubleđể stringsử dụng C ++ 11 std::to_string() chức năng. Đối với các trình biên dịch C ++ cũ hơn, chúng ta có thể sử dụng std::stringstreamcác đối tượng.

Ví dụ 3: float và double to string Sử dụng to_string ()

 #include #include int main() ( float num_float = 123.4567F; double num_double = 123.4567; std::string str1 = std::to_string(num_float); std::string str2 = std::to_string(num_double); std::cout << "Float to String = " << str1 << std::endl; std::cout << "Double to String = " << str2 << std::endl; return 0; )

Đầu ra

 Float to String = 123.456703 Double to String = 123.456700

Ví dụ 4: float và double to string Sử dụng stringstream

 #include #include #include // for using stringstream int main() ( float num_float = 123.4567F; double num_double = 123.4567; // creating stringstream objects std::stringstream ss1; std::stringstream ss2; // assigning the value of num_float to ss1 ss1 << num_float; // assigning the value of num_float to ss2 ss2 << num_double; // initializing two string variables with the values of ss1 and ss2 // and converting it to string format with str() function std::string str1 = ss1.str(); std::string str2 = ss2.str(); std::cout << "Float to String = " << str1 << std::endl; std::cout << "Double to String = " << str2 << std::endl; return 0; )

Đầu ra

 Float to String = 123.457 Double to String = 123.457

Đề xuất đọc: Chuỗi C ++ thành int.

thú vị bài viết...