Конвертировать double в string
От: DukeNukem3D Россия  
Дата: 11.06.08 10:49
Оценка:
Делаю так:

string strTmp;
double dNum = 123.456;
strTmp = lexical_cast(dNum);


в ответ компилятор выдает error: 'lexical_cast' was not declared in this scope
что-то нужно "include"? или может есть функция наподобие atof() только в обратную сторону?
пробовал поискать на тему — активно обсуждаются sprintf(), но это не вариант.
С уважением, Андрей
конвертировать double string
Re: Конвертировать double в string
От: Pasternak  
Дата: 11.06.08 11:02
Оценка:
Здравствуйте, DukeNukem3D, Вы писали:

DND>Делаю так:


DND>
DND>string strTmp;
DND>double dNum = 123.456;
DND>strTmp = lexical_cast(dNum);
DND>


DND>в ответ компилятор выдает error: 'lexical_cast' was not declared in this scope

DND>что-то нужно "include"? или может есть функция наподобие atof() только в обратную сторону?
DND>пробовал поискать на тему — активно обсуждаются sprintf(), но это не вариант.

#include <boost/lexical_cast.hpp>
using namespace boost;
Re: Конвертировать double в string
От: php-coder Чехия http://slava-semushin.blogspot.com
Дата: 11.06.08 11:05
Оценка:
Здравствуйте, DukeNukem3D, Вы писали:

DND>Делаю так:


DND>
DND>string strTmp;
DND>double dNum = 123.456;
DND>strTmp = lexical_cast(dNum);
DND>


DND>в ответ компилятор выдает error: 'lexical_cast' was not declared in this scope

DND>что-то нужно "include"?

Насколько понимаю, нужно
#include <boost/lexical_cast.hpp>

using boost::lexical_cast;

strTmp = lexical_cast<string>(dNum)


=> http://www.boost.org/doc/libs/1_35_0/libs/conversion/lexical_cast.htm
Re: Конвертировать double в string
От: Were  
Дата: 11.06.08 11:33
Оценка:
Здравствуйте, DukeNukem3D, Вы писали:

DND>или может есть функция наподобие atof() только в обратную сторону?


ecvt(), fcvt(), gcvt()
Re: Конвертировать double в string
От: chipmunk  
Дата: 11.06.08 11:48
Оценка: +1
можно ещё так:
std::string toString(double d)
{
    std::ostringstream out;
    out << d;
    return out.str();
}
Re[2]: Конвертировать double в string
От: Roman Odaisky Украина  
Дата: 11.06.08 12:10
Оценка:
Здравствуйте, chipmunk, Вы писали:

C>можно ещё так:

C>
C>std::string toString(double d)
C>{
C>    std::ostringstream out;
C>    out << d;
C>    return out.str();
C>}
C>

Это и есть boost::lexical_cast, только через одно место.
До последнего не верил в пирамиду Лебедева.
Re[3]: Конвертировать double в string
От: chipmunk  
Дата: 11.06.08 12:17
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Это и есть boost::lexical_cast, только через одно место.


ну а если проект не использует boost ? не подключать же его ради одного конвертирования
Re[2]: Конвертировать double в string
От: minorlogic Украина  
Дата: 11.06.08 14:05
Оценка: +1
Здравствуйте, chipmunk, Вы писали:

Тогда уж так

template<typename Type>
std::string toString(const Type& d)
{
    std::ostringstream out;
    out << d;
    return out.str();
}
Ищу работу, 3D, SLAM, computer graphics/vision.
Re: Конвертировать double в string
От: Vamp Россия  
Дата: 11.06.08 14:21
Оценка:
DND>пробовал поискать на тему — активно обсуждаются sprintf(), но это не вариант.
А почему sprintf нехорош? Можно сделать обертку, которая будет спринтф внутри вызывать...
Да здравствует мыло душистое и веревка пушистая.
Re: Конвертировать double в string
От: DukeNukem3D Россия  
Дата: 16.06.08 09:53
Оценка: :)
Оказалось с моим компилятором не идет в комплекте библиотека boost — пришлось доставить вручную, синтаксис на самом деле таков strTmp = boost::lexical_cast<string>(dEffectiveSum);
С уважением, Андрей
c++ double string
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.