Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ и WinAPI

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

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

05.01.2017, 13:16. Просмотров 195. Ответов 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 знака после запятой?
Как это можно решить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2017, 13:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение из EDIT числа с плавающей точкой (C++ WinAPI):

Вещественные числа с плавающей точкой, точность вычислений - C++
Работаю над проектом, требующим большую точность вычисления вещественных чисел. Решила использовать long double в надежде получить...

Printf лжет при выводе чисел с плавающей точкой? - C++
void doubleToString(double v, char * str){ if(v < 0) { *str = '-'; v = -v; } int number = static_cast<int>(v); double...

Чтение из редактора edit - C++ WinAPI
Уважаемые полюзователи! Задача стоит так, при нажатие кнопки срабатывало чтение данных из редактора edit в в MessageBox. ...

Чтение текста из Edit - C++ WinAPI
задача такая: мне нужно чтобы с эдита считывалась цифра затем цифра умножалась на два и выводилась по нажатти кнопки в отдельный...

Перевод числа с плавающей запятой в unicode - C++ WinAPI
пытался сделать так: wsprintf(buf,L"%d", rollWidth); //%f не работает, параметров с запятой не нашел SetWindowText(editDisable1,...

Преобразование чисел с плавающей точкой в числа с фиксированной точкой - Turbo Pascal
Здравствуйте, подскажите пожалуйста как заменить вещественные числа с плавающей точкой, числами округленными до десятых, записанными в...

2
rao
854 / 407 / 119
Регистрация: 02.04.2014
Сообщений: 1,183
05.01.2017, 14:15 #2
попробуй функцию atof

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

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

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

Тогда перед преобразованием строки в double проверяй и заменяй "." на ","
Но на другом компьютере языковые стандарты могут оказаться другими и придется делать наоборот.
Вот у меня в качестве разделите используется точка.
Или нужно запрашивать у системы каким символом пользоваться, и проверять строку учитывая его.
0
Alex5
1102 / 763 / 119
Регистрация: 12.04.2010
Сообщений: 1,936
05.01.2017, 15:52 #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' пропускаем
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2017, 15:52
Привет! Вот еще темы с ответами:

Чтение чисел с плавающей точкой из файла, разделенных запятыми в переменные - C++
Здравствуйте! У меня есть файл "file.dat" вида 2 82.7957421541214,55.0893564395402 82.7997922897339,55.0893564395402 ...

Числа с плавающей точкой - Assembler
Здравствуйте, подскажите пожалуйста как решать задачки с плавающей точкой. Например: x = 2*a+(4 - b) a b - вещественные

Числа с плавающей точкой - JavaScript
интерпретатор javascript в опере оказывается лучше считает числа, чем в других браузерах например, при сложении чисел 4 + 7.13, только...

Числа с плавающей точкой - C#
Как отделить целую часть и дробную? Например имеем число 12.54 число 12 должно бить записано в textbox1 а число 54 в textbox2.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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