sprintf
нормально, но в C ++ лучший, более безопасный и немного медленный способ преобразования - stringstream
:
#include <sstream>
#include <string>
// In some function:
double d = 453.23;
std::ostringstream os;
os << d;
std::string str = os.str();
Вы также можете использовать Boost.LexicalCast :
#include <boost/lexical_cast.hpp>
#include <string>
// In some function:
double d = 453.23;
std::string str = boost::lexical_cast<string>(d);
В обоих случаях str
должен быть "453.23"
после. LexicalCast имеет некоторые преимущества в том, что он обеспечивает завершение преобразования. Он использует stringstream
s внутри.