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

У меня возникают проблемы с преобразованием двойной строки в С++. Вот мой код

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

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

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

Ответ 1

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

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

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

Ответ 2

#include <iomanip>

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

Ответ 3

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

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