103 votes

Définir la précision de std::to_string lors de la conversion de valeurs à virgule flottante

En C++11, std::to_string utilise par défaut 6 décimales lorsqu'il reçoit une valeur d'entrée de type float o double . Quelle est la méthode recommandée, ou la plus élégante, pour modifier cette précision ?

152voto

hmjd Points 76411

Il n'y a aucun moyen de modifier la précision via to_string() mais le setprecision Un manipulateur IO pourrait être utilisé à la place :

#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();
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X