2015-01-26 5 views
-4

Чтобы сделать его коротким, вот код:Странная подталкивания :: преобразование lexical_cast

std::string m_specs = "f500000"; 
float m_sten = 21.0; 
std::cout << m_specs << std::endl; 
m_specs = "f" + boost::lexical_cast<std::string>(m_sten); 
std::cout << m_specs << std::endl; 

Первый выход будет:

f500000

, но вторая воля be

f6.70932579e + 028

ожидать результат

f21.0

Я не имею ни малейшего представления, почему это такое преобразование так странно ... Мне нужны твои огни. Спасибо заранее.

+2

В первой строке вы используете 'm_sten', но в третьей строке вы используете' m_stren'. Кроме того, почему вы используете лексическую строку для строки? Что ты пытаешься сделать? Вы уверены, что делаете это правильно? –

+0

Отредактировано, извините, это не так. – Marion

+0

[ideone] (http://ideone.com/etRdIb) не согласен с вами. Как насчет полного примера? –

ответ

2

Ваш код переключается между m_stren и m_sten.

Вы уверены, что не смешиваете две разные, но похожие переменные?

+0

О, извините, когда я что-то публикую, я всегда делаю код короче и забыл некоторые мелочи, я быстро отредактирую код, это не проблема с переименованием, я просто ошибаюсь в коде на SOF. Сожалею. – Marion

-1

Ну, я выяснил решение, по сути, m_sten на самом деле не было объявлено. Я забыл объявить это функцией. Спасибо за внимание к этому.

 Смежные вопросы

  • Нет связанных вопросов^_^