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
我想使用默认的 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