C++ 如何用 std::string 格式化浮点数?

C++ How do I format a float with std::string?

我想使用默认的 iostream 浮点格式将浮点附加到字符串,例如 4.2f,方法如下:

std::string s;
s.append("float format: ");
s.append(std::to_string((float) 4.3)));
s.append(" : end");

我想找到一个函数来生成以下结果:

float format: 4.3f : end

但是上面的代码却给了我这个结果:

float format: 4.300000000000 : end

我必须格式化然后放入字符串。我不想在iostream上推送时格式化。

找到了使用stringstream的方法:)然后它使用默认的ostream float格式并将其推送到字符串:)

std::stringstream ss;
std::string s;
ss << 3.4;
ss >> s;
std::cout << s.append("f") << std::endl;

生成以下输出:

3.4f