Преобразование экспоненциальных чисел в C ++, MFC

0

Я очень новичок в MFC, и теперь я хочу преобразовать экспоненциальные числа "4.246E + 3" в 4246.

Вход в строку и вывод. Я хочу получить его в int.

Пожалуйста, дайте мне знать, если у нас есть какой-либо способ (API), чтобы получить его в MFC, C++.

Спасибо MAP

  • 0
    MFC - это, прежде всего, библиотека программирования Windows GUI, поэтому я не ожидаю, что она будет содержать такую функцию преобразования. Вы можете проверить ссылку C ++ на cstdlib. Содержит информацию об экспоненте E / e.
Теги:
visual-c++
mfc
cstring

2 ответа

2
Лучший ответ

Следующий код будет отлично работать, чтобы решить вашу проблему...

#include<sstream>

string str = "4.246e+3";
stringstream ss;
double number;
ss<<str;
ss>>number;
  • 0
    Это решение C ++ - ish; вы можете stringstream из строки. ( stringstream ss(str); )
  • 0
    Да, я знаю, что ... пытался сделать мой ответ более объяснительным .. спасибо за указание на это ...
Показать ещё 3 комментария
-2

Вы можете использовать стандартную библиотечную функцию, которая позволяет str быть в научной нотации.

int stoi (const string&  str, size_t* idx = 0, int base = 10);

Если вы idx и он вернется nullptr тогда str будет чистым номером, если нет, то он вернет адрес первого недопустимого символа на str.

Лучше использовать стандартные библиотечные функции C++, а не MFC, когда это возможно, чтобы помочь в любом будущем переносе из MFC.

  • 0
    @ downvoter: что я пропустил?
  • 0
    Я получил ошибку = C3861: 'Stoi': идентификатор не найден
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню