Conversione Doppio String in C ++
Domanda
Sto avendo alcuni problemi cercando di convertire un doppio a stringa C ++. Ecco il mio codice
std::string doubleToString(double val)
{
std::ostringstream out;
out << val;
return out.str();
}
Il problema che ho è se una doppia viene passato come '10000000'. Quindi il valore della stringa da restituire è 1e + 007
Come posso ottenere il valore stringa come "10000000"
Soluzione
#include <iomanip>
using namespace std;
// ...
out << fixed << val;
// ...
Si potrebbe anche considerare l'utilizzo di setprecision
per impostare il numero di cifre decimali:
out << fixed << setprecision(2) << val;
Altri suggerimenti
#include <iomanip>
std::string doubleToString(double val)
{
std::ostringstream out;
out << std::fixed << val;
return out.str();
}
È anche possibile impostare la larghezza minima e riempire salmerino con manipolatori STL IO, come:
out.width( 9 ); out.fill( ' ' );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow