问题
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?
回答1:
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