Witam!
Potrzebuję przekonwertować double do stringa, tak żebym mógł go wypisać w memo razem z teksem, np:
Memo1->Lines->Add("Miejsce zerowe funkcji x1=("+double+",0)");
i od razu jak się tak żeby wypisało do 2giego miejsca po przecinku. Na float wiem jak to zrobić ale na double nie mogłem rozkminić czego użyć a łażenie po google nic mi nie dało.
0
1
woocash94 napisał(a):
Na float wiem jak to zrobić ale na double nie mogłem rozkminić czego użyć a łażenie po google nic mi nie dało.
Naprawdę?
http://stackoverflow.com/questions/10934044/converting-a-precision-double-to-a-string
Tutaj jest konwersja z wykorzystaniem string stream, a także co bardziej ciekawe:
http://en.cppreference.com/w/cpp/string/basic_string/to_string
dla c++11
0
Jeśli to nie C++11 to się używa takiego klasycznego kodu:
template <class T>
std::string toString(const T& t)
{
std::ostringstream oss;
oss << t;
return oss.str();
}
Wersja dla Twojego konkretnego przypadku:
template <class T>
std::string toStringPrec(const T& t, int prec)
{
std::ostringstream oss;
oss << std::setprecision(prec) << t;
return oss.str();
}
a potem
Memo1->Lines->Add("Miejsce zerowe funkcji x1=("+toStringPrec(x1, 2)+",0)");
0
Możnaby użyć std::to_string z C++11
http://en.cppreference.com/w/cpp/string/basic_string/to_string
0
Memo1->Lines->Add(AnsiString("Miejsce zerowe funkcji x1=(")+x1+",0)");
0
vpiotr napisał(a):
Jeśli to nie C++11 to się używa takiego klasycznego kodu:
template <class T>
std::string toString(const T& t)
{
std::ostringstream oss;
oss << t;
return oss.str();
}
Napisanie takiej funkcji jest kuszące, ale zwykle nie ma potrzeby, wystarczy tylko trzymać się używania strumienia:
ostringstream oss;
oss << "Miejsce zerowe funkcji x1=(" << double << ",0)";
Memo1->Lines->Add(oss.str());