Pergunta

Eu estou tendo alguns problemas tentando converter um duplo para string C ++. Aqui está o meu código

std::string doubleToString(double val)
{
    std::ostringstream out;
    out << val;
    return out.str();
}

O problema que tenho é se um casal está sendo passado como '10000000'. Em seguida, o valor da cadeia que estão sendo devolvidos é 1e + 007

Como posso obter o valor de cadeia como "10000000"

Foi útil?

Solução

#include <iomanip>
using namespace std;
// ...
out << fixed << val;
// ...

Você também pode considerar o uso setprecision para definir o número de casas decimais:

out << fixed << setprecision(2) << val;

Outras dicas

#include <iomanip>

std::string doubleToString(double val)
{
   std::ostringstream out;
   out << std::fixed << val;
   return out.str();
}

Você também pode definir a largura mínima e caractere de preenchimento com STL manipuladores IO, como:

out.width( 9 );
out.fill( ' ' );
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top