#include <sstream>
...
double dVar;
...
std::ostringsrteam sstr;
sstr << dVar;
sstr.str();
конвертация из char в double и обратно
можно просто дать ссылочку, направить, так сказать :)
Не совсем понятно. Язык С/С++? Если он, то в строку тот же printf(...), а обратно atof(char *str).
Цитата: lifs
Если он, то в строку тот же printf(...)
Скорее sprintf.
Но это для C.
Для C++ лучше юзать std::ostringstream или boost::lexical_cast
проблема в том что мне надо конвертировать числа с точностью до 10 в степени +/- 12, т.е. до миллиардов и миллиардных долей. atoi не подходит, во-первых он только для целых работает, а во-вторых не для длинных целых (уже думала рассматривать отдельно целую и дробную часть).
Цитата: aks
Скорее sprintf.
Но это для C.
Для C++ лучше юзать std::ostringstream или boost::lexical_cast
Но это для C.
Для C++ лучше юзать std::ostringstream или boost::lexical_cast
можно поподробнее про std::ostringstream или boost::lexical_cast?:)
Код:
Если имеется boost тогда можно так:
Код:
#include <boost/lexical_cast.hpp>
...
std::string str = boost::lexical_cast<std::string>(dVar);
...
std::string str = boost::lexical_cast<std::string>(dVar);
Код:
char *s = "123456789012.123456789012";
__int64 x = _atoi64(s);
double y = 0;
if (strchr(s, '.'))
y = atof(strchr(s, '.'));
__int64 x = _atoi64(s);
double y = 0;
if (strchr(s, '.'))
y = atof(strchr(s, '.'));
если или то, или другое, то вполне подойдет double и функция atof.
Всех благодарю за помощь ;)
Можна использовать все возможности обычного принтфа по форматированию
sprintf уже приводили в качестве примера. Но для C++ следует исспользовать например std::ostringstream