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

При переводе из double в string теряются знаки после запятой - C++

Восстановить пароль Регистрация
 
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
08.01.2014, 05:35     При переводе из double в string теряются знаки после запятой #1
Перевожу переменную double в string

C++
1
2
3
4
5
6
7
stringstream sst;
string f_str;
double f=12345.99;
 
sst << f;                        
f_str= sst.str();sst.str("");
_cprintf("f_str= %s", f_str.c_str());_cprintf("\n");
если число 5 значное или больше , то оба знака после запятой теряются в результате выводится на экран число
12345

А если число 4 значное или меньше выводятся все знаки
1234.99

Как убрать этот лимит или задать его самому, чтобы например можно было преобразовывать 10 значные числа без потери знаков после запятой.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 05:35     При переводе из double в string теряются знаки после запятой
Посмотрите здесь:

C++ Переменная float - знаки после запятой
В массиве double обрубаются знаки после запятой C++
C++ Как перевести double в string с точкой вместо запятой
Появляющиеся нули при переводе из массива char в double C++
знаки после запятой , формат float C++
знаки после запятой C++
Табуляция и знаки после запятой C++
C++ При выводе числа с плавающей запятой теряются последние цифры

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 05:51     При переводе из double в string теряются знаки после запятой #2
C++
1
2
3
4
5
6
7
8
9
stringstream sst;
    string f_str;
    double f = 12345.99;
    
    sst.precision(9);
    sst << f;                        
    f_str = sst.str();
    sst.str("");
    cout << "f_str= " << f_str << endl;
Yandex
Объявления
08.01.2014, 05:51     При переводе из double в string теряются знаки после запятой
Ответ Создать тему
Опции темы

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