在C++中将Double转换为String

10

我正试图将一个double转换为C++字符串,但遇到了一些问题。这是我的代码:

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

我遇到的问题是,如果一个double类型的值被传入为'10000000',那么返回的字符串值为1e+007。

如何获取字符串值"10000000"?


12
以下是一些示例:http://www.codeproject.com/KB/recipes/Tokenizer.aspx 它们非常高效且有些优雅。 - Matthieu N.
3个回答

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

你还可以考虑使用 setprecision 来设置小数位数:

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

8
#include <iomanip>

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

2
您可以使用STL IO操作符设置最小宽度和填充字符,例如:
out.width( 9 );
out.fill( ' ' );
请注意保留HTML标签,不做解释,使内容更加通俗易懂。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接