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

标签 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 上推送时格式化。

最佳答案

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

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

生成以下输出:

3.4f

关于C++ 如何用 std::string 格式化 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48312786/

相关文章:

c++ - 如何将类似 iostream 的接口(interface)写入日志库?

c++ - 为什么 std::basic_istream::ignore() 提取的字符多于指定的字符?

c++ - 为什么这个未打开的 ifstream 在我尝试从中提取后仍然是 "good"?

c++ - 如何安全地从流中读取无符号整数?

c++ - 在末尾使用值修饰符 ('-' 、 '%' ) 解析字符串

c++ - 如何仅使用其中一个维度在2D vector 中插入值?

c++ - mex 与 MATLAB2013a 无法识别的开关 : -o

c++ - boost::xtime nsec 在 Ubuntu 上只给出 1 秒的分辨率

c++ - condition_variable::wait_for 和 wait_until 使用 chrono::steady_clock 但在 PC sleep 时跳过持续时间?

c++ - 尝试从类打印私有(private)静态整数时出错。 C++