Преобразование Double в String в C ++ - PullRequest
10 голосов
/ 14 мая 2009

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

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

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

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

Ответы [ 3 ]

14 голосов
/ 14 мая 2009
#include <iomanip>
using namespace std;
// ...
out << fixed << val;
// ...

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

out << fixed << setprecision(2) << val;
8 голосов
/ 14 мая 2009
#include <iomanip>

std::string doubleToString(double val)
{
   std::ostringstream out;
   out << std::fixed << val;
   return out.str();
}
2 голосов
/ 14 мая 2009

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

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