English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ String (string) e float/Conversão mútua de double (ponto flutuante)

Neste tutorial, vamos aprender como converter uma string para um número de ponto flutuante e vice-versa com exemplos.

C ++Conversão de string para número de ponto flutuante e duplo ponto flutuante

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.

Exemplo1:C ++Conversão de string para ponto flutuante e duplo ponto flutuante

#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

Exemplo2:converter C ++ converter array de caracteres para double

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

C ++números de ponto flutuante e double para strings

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.

Exemplo3:use to_string() para converter números de ponto flutuante e double em strings

#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

Exemplo4:use stringstream para converter números de ponto flutuante e double em strings

#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.