C++ 11では、タイプfloat
またはdouble
の入力値を指定すると、std :: to_string はデフォルトで小数点以下6桁になります。この精度を変更するための推奨される、または最もエレガントな方法は何ですか?
to_string()
で精度を変更する方法はありませんが、代わりに setprecision
IOマニピュレーターを使用できます:
#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();
}