Преобразование Double в String в C++

У меня возникли некоторые проблемы, пытаясь преобразовать строку double в C++. Вот мой код

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

проблема у меня есть, если двойной передается как "10000000". Тогда возвращаемое строковое значение равно 1e+007

Как я могу получить строковое значение как "10000000"

3 ответов


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

вы также можете рассмотреть возможность использования setprecision установить количество десятичных цифр:

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

#include <iomanip>

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

вы также можете установить минимальную ширину и заполнить символ манипуляторами STL IO, например:

out.width( 9 );
out.fill( ' ' );