C ++如何使用std :: string格式化float?

时间:2018-01-18 02:09:12

标签: c++ iostream

我想将一个浮点数附加到一个带有默认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时我不想格式化。

1 个答案:

答案 0 :(得分:2)

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

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

生成以下输出:

3.4f