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

C++ и WinAPI

Войти
Регистрация
Восстановить пароль
 
eagl69
4 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 478
#1

Чтение из EDIT числа с плавающей точкой - C++ WinAPI

05.01.2017, 13:16. Просмотров 154. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Надо сохранить с поля ввода число с плавающей точкой. я сделал так:
C++
1
2
3
char tarif_1[20];
GetDlgItemText(hDlg_tarif, ID_TARIF_1, tarif_1, 20);
str_tarif.tarif_1 = strtod(tarif_1, NULL);
Здесь несколько минусов: 1. если вводить не , а . то число записывается не полностью а только целая часть и второе если мне надо только 2 знака после запятой?
Как это можно решить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2017, 13:16     Чтение из EDIT числа с плавающей точкой
Посмотрите здесь:

C++ WinAPI Работа с edit
C++ WinAPI класс EDIT
Edit'ы. SendMessage C++ WinAPI
Чтение из редактора edit C++ WinAPI
создание edit C++ WinAPI
Поле Edit C++ WinAPI
Поле Edit C++ WinAPI
Чтение текста из Edit C++ WinAPI
C++ WinAPI Сабклассинг Edit
Edit и ScrollBar C++ WinAPI
C++ WinAPI Не считывает с Edit
C++ WinAPI MFC Edit

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rao
850 / 403 / 119
Регистрация: 02.04.2014
Сообщений: 1,171
05.01.2017, 14:15     Чтение из EDIT числа с плавающей точкой #2
попробуй функцию atof

Добавлено через 11 минут
ах ты ж блин. . с ней такая же фигня.

Тогда перед преобразованием строки в double проверяй и заменяй "." на ","
Но на другом компьютере языковые стандарты могут оказаться другими и придется делать наоборот.
Вот у меня в качестве разделите используется точка.
Или нужно запрашивать у системы каким символом пользоваться, и проверять строку учитывая его.

Добавлено через 15 секунд
ах ты ж блин. . с ней такая же фигня.

Тогда перед преобразованием строки в double проверяй и заменяй "." на ","
Но на другом компьютере языковые стандарты могут оказаться другими и придется делать наоборот.
Вот у меня в качестве разделите используется точка.
Или нужно запрашивать у системы каким символом пользоваться, и проверять строку учитывая его.
Alex5
1035 / 698 / 102
Регистрация: 12.04.2010
Сообщений: 1,754
05.01.2017, 15:52     Чтение из EDIT числа с плавающей точкой #3
Цитата Сообщение от eagl69 Посмотреть сообщение
если вводить не , а . то число записывается не полностью а только целая часть и второе если мне надо только 2 знака после запятой?
1 способ. Преобразовать массив char[], определить позицию запятой, и т.д.
2 способ. sscanf
C++
1
2
3
4
5
6
7
    char input[] = "   12.345678e11    ";   //     
 
    double x = 0.0;
    sscanf( input, "%le", &x );  // %le   double 
 
    float y = 0.0;
    sscanf( input, "%e", &y );  //  %e   float
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
    char input2[] = "   12,345678e11    ";   //     
    int m, n, k;
    char str[100] = {};
    //sscanf( input2, "%d,%2d  %10[^e] e %d ", &m, &n, str, &k );  //    m: 12,   n: 34, str: "5678",  k: 11
 
    sscanf( input2, "%d,%2d  %10*[^e] e %d ", &m, &n, &k );  //    m: 12,   n: 34,  k: 11
    //  %*10[^e]   все символы кроме 'e' пропускаем
Yandex
Объявления
05.01.2017, 15:52     Чтение из EDIT числа с плавающей точкой
Ответ Создать тему
Опции темы

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