sprintf
tidak apa-apa, tetapi dalam C ++, cara konversi yang lebih baik, lebih aman, dan juga sedikit lebih lambat adalah dengan stringstream
:
#include <sstream>
#include <string>
// In some function:
double d = 453.23;
std::ostringstream os;
os << d;
std::string str = os.str();
Anda juga dapat menggunakan Boost.LexicalCast :
#include <boost/lexical_cast.hpp>
#include <string>
// In some function:
double d = 453.23;
std::string str = boost::lexical_cast<string>(d);
Dalam kedua kasus, str
harus "453.23"
sesudahnya. LexicalCast memiliki beberapa kelebihan karena memastikan transformasi selesai. Menggunakan stringstream
s secara internal.