C++:将double转换为字符串的最佳方法是什么?

Dav*_*son 12 c c++

实现同样目标的最佳方式是什么?

void foo(double floatValue, char* stringResult)
{
    sprintf(stringResult, "%f", floatValue);
}
Run Code Online (Sandbox Code Playgroud)

Tyl*_*nry 23

我敢肯定有人会说boost :: lexical_cast,所以如果你使用的是boost,那么它仍然是基本相同的:

 #include <sstream>
 #include <string>

 std::string doubleToString(double d)
 {
    std::ostringstream ss;
    ss << d;
    return ss.str();
 }
Run Code Online (Sandbox Code Playgroud)

请注意,您可以轻松地将其转换为适用于可以插入流的任何内容的模板(不仅仅是双精度数).

  • 我应该注意到,由于提出问题的方式(从C变为C++),我将"最优"解释为"最惯用"而不是"最快速执行". (6认同)

Dav*_*vid 2

我可能会采纳您在问题中建议的内容,因为没有内置的 ftoa() 函数,而 sprintf 可以让您控制格式。谷歌搜索“ftoa asm”会产生一些可能有用的结果,但我不确定你想走那么远。