Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
#1

Как преобразовать большое число в строку - C++

20.05.2012, 00:57. Просмотров 956. Ответов 5
Метки нет (Все метки)

Делаю такое преобраование

C++
1
2
3
4
char szbuff[255];
double X=3292373930;
sprintf(szbuff, "%g", X);   
string X_str=szbuff;
В результате получаю X_str равно 3292370000 при записи в БД
а в текстовый файл пишет 3.29237e+009

как сделать так чтобы в строковую переменную большие числа писались без изменений
Нужно что нить универсально, числа могут быльшими могут быть маленькими
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2012, 00:57     Как преобразовать большое число в строку
Посмотрите здесь:

Преобразовать число в строку/строкук в число C++
C++ Как строку можно преобразовать в число???
C++ Как преобразовать число в строку
C++ Преобразовать строку->число->строку
C++ как преобразовать шестнадцатеричную строку в целое десятичное число
C++ Как преобразовать строку цифр в число?
Как преобразовать большое число в строку через stringstream и ограничить знаки после точки C++
Подскажите, как преобразовать строку с IP адресом в число и обратно C++
C++ Как преобразовать шестнадцатеричное число в строку?
C++ Возможно ли преобразовать в число, строку вида:
C++ Преобразовать число int в строку прописью char
Преобразовать большое число представленного строкой в двоичный эквивалент C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.05.2012, 11:15     Как преобразовать большое число в строку #2
Цитата Сообщение от nill Посмотреть сообщение
"%g"
%lf
Но если числа будут больше 15 знаков, то без изменений не получится.
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
20.05.2012, 17:52  [ТС]     Как преобразовать большое число в строку #3
diagon,
3292373930.000000
В результате получил число с 6 нулями после точки, а как сдеать чтобы не было нулей ?
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.05.2012, 18:18     Как преобразовать большое число в строку #4
%.0lf
И еще 2 замечания:
1) Зачем использовать double, если есть long long?
2) Использовать sprintf в с++ очень плохо, используйте stringstream'ы либо boost::lexical_cast.
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
20.05.2012, 19:00  [ТС]     Как преобразовать большое число в строку #5
1) Пока все влазиет и в double, или long double проще преобразовать в строку ?
2) А можно пример stringstream, я при работе со строками всегда использовал sprintf, о другом даже не слышал
boost не надо, там надо инклуды подключать всякие
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.05.2012, 19:07     Как преобразовать большое число в строку #6
Цитата Сообщение от nill Посмотреть сообщение
1) Пока все влазиет и в double, или long double проще преобразовать в строку ?
long long - целое число, а также в него влезает больше цифр.

Цитата Сообщение от nill Посмотреть сообщение
А можно пример stringstream, я при работе со строками всегда использовал sprintf, о другом даже не слышал
C++
1
2
3
stringstream sst;
sst << 123456;
string str = sst.str();// str == "123456"
Цитата Сообщение от nill Посмотреть сообщение
boost не надо, там надо инклуды подключать всякие
C бустом основная проблема - установить его, но это полностью окупается различными ништяками.
Например, ваш код можно записать с помощью буста, как
C++
1
string X_str = boost::lexical_cast< string > (3292373930);
Преобразования между другими типами делаются так же легко.
Yandex
Объявления
20.05.2012, 19:07     Как преобразовать большое число в строку
Ответ Создать тему
Опции темы

Текущее время: 02:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru