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

Corso di base C++

Controllo di flusso C++

Funzione in C++

Array e stringhe C++

Strutture dati C++

Classi e oggetti C++

Puntatore in C++

Ereditarietà in C++

Corso di base STL C++

Manuale di riferimento C++

Conversione tra C++ String (stringa) e float/double (numero a virgola mobile)

In questo tutorial, impareremo come convertire una stringa in numero a virgola mobile e viceversa con l'aiuto di esempi.

Conversione tra stringa C++ e numeri a virgola mobile e double

Il modo più semplice per convertire una stringa in numero a virgola mobile è utilizzare il seguenteC ++ 11Funzione:

  • std :: stof() - Convertire stringa in float

  • std :: stod() - Convertire stringa in double

  • std :: stold() - Convertire stringa in long double

Queste funzioni sono definite nel file header string.

Esempio 1: Convertire una stringa C++ in float e double

#include<iostream>
#include<string>
int main() {
    std::string str = "123.4567";
    // Convertire la stringa in float
    float num_float = std::stof(str);
    // Convertire la stringa in 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;
}

Risultato di output

num_float = 123.457
num_double = 123.457;

Esempio 2: Convertire un array di char C++ in double

Possiamo utilizzare la funzione std::atof() per convertire un array di caratteri in double.

#include<iostream>
// atoi() richiede cstdlib
#include<cstdlib>
int main() {
    // Dichiarare e inizializzare l'array di caratteri
    char str[] = "123.4567";
    double num_double = std::atof(str);
    std::cout << "num_double = " << num_double << std::endl;
    
    return 0;
}

Risultato di output

num_double = 123.457;

Conversione di numeri floating-point e double in stringa in C++

Possiamo utilizzare la funzione std::to_string() di C++11 per convertire float e double in stringa. Per compilatori C++ più vecchi, possiamo utilizzare l'oggetto std::stringstream.

Esempio 3: Utilizzare to_string() per convertire numeri floating-point e double in stringa

#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 convertito in String = " << str1 << std::endl;
   std::cout << "Double convertito in String = " << str2 << std::endl;
    return 0;
}

Risultato di output

Conversione di Float in String = 123.456703
Conversione di Double in String = 123.456700

Esempio 4: Utilizzare stringstream per convertire numeri floating-point e double in stringa

#include<iostream>
#include<string>
#include<sstream> //Utilizzare stringstream
int main() {
    float num_float = 123.4567F;
    double num_double = 123.4567;
  
    //Creare un oggetto stringstream
    std::stringstream ss1;
    std::stringstream ss2;
  
    //Assegnare il valore di num_float a ss1
    ss1 << num_float;
  
    //Assegnare il valore di num_float a ss2
    ss2 << num_double;
     //Inizializzare due variabili di stringa con i valori di ss1 e ss2
     //Poi utilizzare la funzione str() per convertire in formato stringa
    std::string str1 = ss1.str();
    std::string str2 = ss2.str();
  
    std::cout << "Float convertito in String = " << str1 << std::endl;
    std::cout << "Double convertito in String = " << str2 << std::endl;
    return 0;
}

Risultato di output

Float convertito in String = 123.457
Double convertito in String = 123.457

Conversioni correlate: convertire Conversione di stringa in int.