10

我在尝试将双精度转换为 C++ 字符串时遇到一些问题。这是我的代码

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

我遇到的问题是,是否将双精度作为“10000000”传入。那么返回的字符串值为 1e+007

我怎样才能得到字符串值为“10000000”

4

3 回答 3

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

您也可以考虑使用setprecision来设置小数位数:

out << fixed << setprecision(2) << val;
于 2009-05-14T16:10:11.983 回答
8
#include <iomanip>

std::string doubleToString(double val)
{
   std::ostringstream out;
   out << std::fixed << val;
   return out.str();
}
于 2009-05-14T16:12:39.840 回答
2

您还可以使用 STL IO 操纵器设置最小宽度和填充字符,例如:

out.width(9);
out.fill('');
于 2009-05-14T17:58:52.753 回答