Top.Mail.Ru
Ответы
Аватар пользователя
10лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Как преобразовать тип double в string на Dev C++?Может есть ф-ция или спец. процедура?

Вот скрины того что я сделал:
n=8;
1) объявил библиотеку string;
2) объявил 2 массива типа string;
3) приравнял 2 вещественных массива в строковые;
4) печать (вывод рез-та);
5) И долгожданный "Прекращение работы программы". И так каждый раз когда использую string.

Дополнен

Мне необходимо вывести результат! ВЫВОД, ПЕЧАТЬ.

Дополнен

1) У меня массив (одномерный) строкового типа;
2) string(d) - не подходит я уже делал, может из-за того что массив, а не число;
3) Всёравно та же ошибка!

По дате
По рейтингу
Аватар пользователя
Новичок
10лет

Никак, у дабл не хватает разрядности, чтобы хранить столько значащих цифр.

Юзайте тип decimal, у него меньше диапазон допустимых значений, но больше значащих цифр.

Аватар пользователя
Мастер
10лет

смотри:
atof()
printf()
сout

Аватар пользователя
Высший разум
10лет

А проверь такую программу у себя, пойдет ли.

#include < iostream > // лишние пробелы убрать
#include < sstream >
#include < cstdlib >
#include < cstring >

using namespace std;

int main()
{

char buffer[32];

const int n = 10;
string a[n], b[n];

for(int i=0; i<n; i++)
{
ostringstream strs1, strs2;
strs1 << (double)(rand() % 100);
strs2 << (double)(rand() % 100);
a[i] = strs1.str();
b[i] = strs2.str();
cout << a[i] << " : " << b[i] << endl;
}

system("pause");
return 0;
}

Аватар пользователя
Просветленный
10лет

double d {2.3};
std::string s = std::to_string(d);

std::to_string в хедере string определен.

Аватар пользователя
Знаток
10лет

Можно использовать Boost.LexicalCast
#include boost/lexical_cast.hpp
#include string
double d = 453.23;
std::string str = boost::lexical_cast(d);

Либо классический путь
#include sstream
#include string
double d = 453.23;
std::ostringstream os;
os << d;
std::string str = os.str();
Удачи в изучении