转换浮点值时设置 std::to_string 的精度[重复]

问题描述 投票:0回答:1

在 C++11 中,

std::to_string
在给定
float
double
类型的输入值时默认为小数点后 6 位。更改此精度的推荐或最优雅的方法是什么?

c++ string c++11 double floating
1个回答
147
投票

无法通过

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 std::move(out).str();
}
© www.soinside.com 2019 - 2024. All rights reserved.