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"

È stato utile?

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
scroll top