Convertendo duas vezes para Cordas em C ++
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"
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