English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, impareremo come convertire una stringa in numero a virgola mobile e viceversa con l'aiuto di esempi.
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.
#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;
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;
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.
#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
#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.