Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100

Плавающая точка в калькуляторе

26.02.2013, 19:59. Показов 4062. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, ребята. Я решил заняться самообразованием и вот, уже начал писать калькулятор с визуальным интерфейсом Вот только у меня возникла одна проблемка. У меня не получается установить точку-разделитель числа Существует две версии.
Первая:
C++
1
2
3
private: System::Void point_Click(System::Object^  sender, System::EventArgs^  e) {
             txt->Text = (txt->Text) + System::Convert::ToString(".");          
         }
я просто запихиваю точку в текст. Точка действительно появляется в поле, однако число в дабл не конвертируется (Тоже самое происходит, если ввести точку руками, кстати)
Вторая версия:
C++
1
2
3
4
private: System::Void point_Click(System::Object^  sender, System::EventArgs^  e) {     
             cout.setf(ios_base::fixed, ios_base::floatfield);
             cout.setf(ios_base::showpoint);
         }
Подключаю библиотеку инклуде, и она форматирует ввод, однако такой подход тоже не работает . Ребята, подскажите, как быть??
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.02.2013, 19:59
Ответы с готовыми решениями:

Нужно сделать так, чтобы в калькуляторе при нажатии на запятую (плавающая точка) перед ней появлялся ноль
Я сделал так, чтобы ставилось, если не было перед ней числа или действия. Типа *пустое поле*, ставлю запятую => ставится...

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

плавающая точка в делфи
Здравствуйте!!! Можно спросить, какое минимальное количество знаков, должно быть при плавающей точки и какое максимальное?

6
 Аватар для ReasonX7
47 / 46 / 18
Регистрация: 11.12.2011
Сообщений: 147
26.02.2013, 20:19
Тут нужно поставить проверку на нажатие точки. Сам алгоритм записи дробной части числа будет выглядеть где-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int countOfDigitsAfterPoint = 0;
if (point_pressed)
{
    countOfDigitsAfterPoint++;
    number += pow(0.1, countOfDigitsAfterPoint) * digit;
}
 
/* 
Где:
number - число, которое вводит пользователь.
countOfDigitsAfterPoint = количество цифр после точки.
digit - цифра, которую только что ввел пользователь.
*/
1
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
26.02.2013, 20:31  [ТС]
point_pressed - это типо название функции кнопки? или как?
0
 Аватар для ReasonX7
47 / 46 / 18
Регистрация: 11.12.2011
Сообщений: 147
26.02.2013, 21:04
Noobass, это название переменной. Сейчас покажу, что я имел введу.

Добавлено через 15 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool point_pressed;
    private: System::Void textBox1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e) 
    {
        if (e->KeyChar == '.')
        {
            point_pressed = true;
        }
    }
    private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) 
    {
        point_pressed = false;
    }
1
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
28.02.2013, 21:32  [ТС]
ReasonX7, Вот это я еще более-менее понял логику.
C++
1
2
3
4
5
6
7
bool point_pressed;
    private: System::Void textBox1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e) 
    {
        if (e->KeyChar == '.')
        {
            point_pressed = true;
        }
а вот остаток не совсем.. Получается form1_load переставляет поинт_прессед на фалсе, когда включается программа? а почему сразу не инициализировать point_pressed как false?
0
 Аватар для ReasonX7
47 / 46 / 18
Регистрация: 11.12.2011
Сообщений: 147
01.03.2013, 17:31
Noobass, потому что здесь идет работа с классами. Если написать
C++
1
bool point_pressed = false;
, то компилятор выбьет ошибку. Поэтому инициализацию мы делаем в отдельном событии, в нашем случае при загрузке формы.

Добавлено через 1 минуту
Советую на досуге почитать.
1
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
03.03.2013, 21:49  [ТС]
ReasonX7, хорошо, обязательно попробую использовать твой подход Надеюсь, это сработает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2013, 21:49
Помогаю со студенческими работами здесь

Точка в калькуляторе
Может кто-нибудь знает как сделать точку в калькуляторе, точку которая отделяет целую и дробную часть?

Точка в калькуляторе. Программа падает при вычислениях
У меня задача - калькулятор. Есть часть кода которая нестабильно работает, т.е. когда просто жмешь на точку, то калькулятор уходит в полный...

Что обозначает сообщение "Плавающая точка переполнения". При работе со СТРИНГРИД
Здравствуйте Форумчани. Всех с прошедшим летом. Начинаем работать. Тема следующая. Создал форму. Решаю обычный пример с помощью...

Плавающая запятая
Добрый день, было дано задание перевести программу с Делфи(среда Лазарус) на С++. До этого с Си языками вообще не встречался. После...

плавающая запятая
Подскажите пожалуйста как перевести 10.5464456 в число с плавающей запятой


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru