This question already has an answer here:
- The precision of std::to_string(double) 3 answers
In C++11, std::to_string defaults to 6 decimal places when given an input value of type float or double. What is the recommended, or most elegant, method for changing this precision?
hmjd
There is no way to change the precision via to_string() but the setprecision IO manipulator could be used instead:
#include <sstream>
template <typename T>
std::string to_string_with_precision(const T a_value, const int n = 6)
{
std::ostringstream out;
out.precision(n);
out << std::fixed << a_value;
return out.str();
}
来源:https://stackoverflow.com/questions/16605967/set-precision-of-stdto-string-when-converting-floating-point-values