Вопрос

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

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

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

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

Это было полезно?

Решение

#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( ' ' );
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top