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

FToS - C++

Войти
Регистрация
Восстановить пароль
 
Adler
 Аватар для Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
14.09.2009, 16:50     FToS #1
>float to string
Нужно перевести число из double в std::string.
что-то типа этого
C++
1
string FToS(double value, int precision);
sprintf,printf и и подобные штуки не пойдут, т.к критично по времени.

ps: разделитель точка.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
14.09.2009, 17:15     FToS #2
Цитата Сообщение от Adler Посмотреть сообщение
sprintf,printf и и подобные штуки не пойдут, т.к критично по времени.
ты эту штуки уже пробовал? может они по времени подойдут.

самый простой способ перевода на С++ - это использовать boost::lexical_cast
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
14.09.2009, 17:19     FToS #3
Ну можно так сделать..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <sstream>
#include <string>
 
inline std::string double_to_string(const double &rhs){
    std::stringstream stm;
    stm << rhs;
    return stm.str();
}
int main(){
 
    std::string s = double_to_string(12.33);
    std::cout << s << std::endl;
    return 0;
}
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
14.09.2009, 17:20     FToS #4
Цитата Сообщение от ISergey Посмотреть сообщение
Ну можно так сделать..
поздравляю. ты изобрёл boost::lexical_cast!
reich
 Аватар для reich
110 / 46 / 3
Регистрация: 03.09.2009
Сообщений: 112
14.09.2009, 17:23     FToS #5
Цитата Сообщение от zim22 Посмотреть сообщение
поздравляю. ты изобрёл boost::lexical_cast!
boost не у всех же есть, а вот std есть у всех
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
14.09.2009, 17:23     FToS #6
Цитата Сообщение от zim22 Посмотреть сообщение
поздравляю. ты изобрёл boost::lexical_cast!
Я в этом не сомневался..
Adler
 Аватар для Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
14.09.2009, 17:29  [ТС]     FToS #7
ISergey
ну я собственно так и пользовался. Только вот плохо что нету precision, поэтому и спрашиваю.
Цитата Сообщение от zim22 Посмотреть сообщение
boost::lexical_cast
столько слышал про этот буст. Надо будет попробовать..
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
14.09.2009, 17:38     FToS #8
Цитата Сообщение от Adler Посмотреть сообщение
столько слышал про этот буст. Надо будет попробовать..
Попробуй. полезная штука..
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
14.09.2009, 18:25     FToS #9
Цитата Сообщение от Adler Посмотреть сообщение
. Только вот плохо что нету precision
поток можно настроить на нужную тебе precision
C++
1
2
3
4
5
6
7
8
9
10
#include <sstream>
#include <string>
 
double d = 2.123456789;
 
std::stringstream ss;
ss.precision(8);
ss << d;
std::string str;
ss >> str;
Adler
 Аватар для Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
14.09.2009, 18:44  [ТС]     FToS #10
zim22,
Спасибо! Круто а я не знал.
Yandex
Объявления
14.09.2009, 18:44     FToS
Ответ Создать тему
Опции темы

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