转换浮点值时设置std :: to_string的精度

在C ++ 11中,当给定一个floatdoubletypes的input值时,std :: to_string默认为6个小数位。 推荐的或者最优雅的改变这种精度的方法是什么?

没有办法通过to_string()更改精度,但是可以使用setprecision IO操纵器来代替:

 #include <sstream> #include <iomanip> template <typename T> std::string to_string_with_precision(const T a_value, const int n = 6) { std::ostringstream out; out << std::setprecision(n) << a_value; return out.str(); }