English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, vamos aprender como converter uma string para um número de ponto flutuante e vice-versa com exemplos.
A maneira mais simples de converter uma string para um número de ponto flutuante é usar a seguinteC ++ 11Função:
std :: stof() - Converter string para float
std :: stod() - Converter string para double
std :: stold() - Converter string para long double.
Essas funções estão definidas no cabeçalho string.
#include <iostream> #include <string> int main() { std::string str = "123.4567"; // Converta uma string para um número de ponto flutuante float num_float = std::stof(str); // converter string para 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; }
Resultados de Saída
num_float = 123.457 num_double = 123.457
podemos usar a função std::atof() para converter um array de caracteres para double.
#include <iostream> // atoi() precisa de cstdlib #include <cstdlib> int main() { // declarar e inicializar um array de caracteres char str[] = "123.4567"; double num_double = std::atof(str); std::cout << "num_double = " << num_double << std::endl; return 0; }
Resultados de Saída
num_double = 123.457
podemos usar C ++ 11 std :: to_string() função converte float e double para strings. Para o C ++compilador, podemos usar o objeto std :: stringstream.
#include <iostream> #include <string> 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 para String = " << str1 << std::endl; std::cout << "Double para String = " << str2 << std::endl; return 0; }
Resultados de Saída
Float para String = 123.456703 Double para String = 123.456700
#include <iostream> #include<string> #include<sstream> // usar stringstream int main() { float num_float = 123.4567F; double num_double = 123.4567; // criar um objeto stringstream std::stringstream ss1; std::stringstream ss2; // atribuir o valor de num_float a ss1 ss1 << num_float; // atribuir o valor de num_float a ss2 ss2 << num_double; //usando ss1e ss2inicializar duas variáveis de string //Então, use a função str() para convertê-lo para o formato de string std::string str1 = ss1.str(); std::string str2 = ss2.str(); std::cout << "Float para String = " << str1 << std::endl; std::cout << "Double para String = " << str2 << std::endl; return 0; }
Resultados de Saída
Float para String = 123.457 Double para String = 123.457
Conversões Relacionadas: Convertendo C ++Conversão de String para int.