Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39

Получение значения типа Double из TextBox

03.05.2014, 00:52. Показов 3637. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подскажите пожалуйста, как правильно преобразовать данные из TextBox в тип Double?
Пусть условно есть три текст бокса: Тариф на водоснабжение, размер НДС, и сумма НДС.
Установил на процедуру ввода значения в "Тариф на водоснабжение" следующее:
VB.NET
1
rtwtrspplndstxtbx.Text = Convert.ToDouble(rtwtrsppltxtbx.Text) * (Convert.ToInt32(ndstxtbx) / 100)
VS2010 ничего не подчеркивает, ни на что не ругается, но при вводе значения в "Тариф на водоснабжение" выдает ошибку "Не удалось привести тип объекта "System.Windows.Forms.TextBox" к типу "System.IConvertible".
Миниатюры
Получение значения типа Double из TextBox  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2014, 00:52
Ответы с готовыми решениями:

Нужно сделать, что-бы textBox принимал значения типа double
есть функция, в которой я проверяю, входят ли в диапазон числа и ввожу их в textbox..но почему-то моя функция отказывается работаться с...

TextBox и переменные типа double
Bозможно ли введение данных типа double в TextBox или для этого существует другой объект (или алгоритм)? Имеется в виду MS Visual Studio...

TextBox не читает отрицательные числа типа double
TextBox не читает отрицательные числа типа double и из-за этого не рассчитывает значение формулы, помогите, пожалуйста. private void...

14
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
03.05.2014, 01:46
ошибка в том что не указано свойство для TextBox "ndstxtbx"

вот что должно быть:
VB.NET
1
rtwtrspplndstxtbx.Text = Convert.ToDouble(rtwtrsppltxtbx.Text) * (Convert.ToInt32(ndstxtbx.Text) / 100)
1
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
03.05.2014, 03:03  [ТС]
Ох ёж! Какая тупая ошибка, прошу прощения!
0
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
03.05.2014, 03:12  [ТС]
Исправил, теперь на ту же строку иначе ругается:
Миниатюры
Получение значения типа Double из TextBox  
0
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
03.05.2014, 04:02
всё правильно, наверное всего вы вводите знак ".", а ему надо ",".
сделайте просто вот так:
VB.NET
1
rtwtrspplndstxtbx.Text = Convert.ToDouble(rtwtrsppltxtbx.Text.Replace(".",",")) * (Convert.ToInt32(ndstxtbx.Text.Replace(".",",")) / 100)
0
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
03.05.2014, 04:27  [ТС]
Нет, обработка висела на "rtwtrsppltxtbx.TextChanged", то есть как только ввожу первую цифру - сразу ошибка. Перевесил на "rtwtrsppltxtbx_Leave" (потеря фокуса текстбоксом, теперь удается ввести всё число), ничего не изменилось, ошибка та-же
0
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
03.05.2014, 04:42
Лучший ответ Сообщение было отмечено ServanteS21 как решение

Решение

может так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Private Sub rtwtrsppltxtbx_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtwtrsppltxtbx.TextChanged
        _BB()
    End Sub
 
    Public Sub _BB()
        If rtwtrsppltxtbx.Text = String.Empty Then Exit Sub
        If ndstxtbx.Text = String.Empty Then Exit Sub
 
        Try
            rtwtrspplndstxtbx.Text = Convert.ToDouble(rtwtrsppltxtbx.Text) * (Convert.ToInt32(ndstxtbx.Text) / 100)
        Catch ex As Exception
 
        End Try
    End Sub
 
    Private Sub ndstxtbx_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ndstxtbx.TextChanged
        _BB()
    End Sub
1
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
03.05.2014, 04:48  [ТС]
Сработало! Но как? Объясните? В чем разница?
0
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
03.05.2014, 04:58
все очень просто. вот объяснение к коду.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 Private Sub rtwtrsppltxtbx_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtwtrsppltxtbx.TextChanged
         'Это наш код который будет обрабатывать всё что мы вводим в обоих TextBox
        _BB()
    End Sub
 
    Public Sub _BB()
        If rtwtrsppltxtbx.Text = String.Empty Then Exit Sub 'Определяем введено ли у нас число в TextBox "rtwtrsppltxtbx"
        If ndstxtbx.Text = String.Empty Then Exit Sub 'Определяем введено ли у нас число в TextBox "ndstxtbx"
        'если нет, то завершаем событие через оператор Exit Sub
        
        'дальше проверяем ввели мы правильно числа или нет
        Try
            ' правильно
            rtwtrspplndstxtbx.Text = Convert.ToDouble(rtwtrsppltxtbx.Text) * (Convert.ToInt32(ndstxtbx.Text) / 100)
        Catch ex As Exception
             ' неправильно
        End Try
    End Sub
 
    Private Sub ndstxtbx_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ndstxtbx.TextChanged
 'Это наш код который будет обрабатывать всё что мы вводим в обоих TextBox
        _BB()
    End Sub
0
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
03.05.2014, 04:58  [ТС]
Это понятно, но чем тут строка рассчетов отличается от моей, почему в этом примере она работает, а у меня нет? И как работает "Catch ex As Exception"?
0
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
03.05.2014, 05:17
все очень просто. вот объяснение к коду.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 Private Sub rtwtrsppltxtbx_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtwtrsppltxtbx.TextChanged
         'Это наш код который будет обрабатывать всё что мы вводим в обоих TextBox
        _BB()
    End Sub
 
    Public Sub _BB()
        If rtwtrsppltxtbx.Text = String.Empty Then Exit Sub 'Определяем введено ли у нас число в TextBox "rtwtrsppltxtbx"
        If ndstxtbx.Text = String.Empty Then Exit Sub 'Определяем введено ли у нас число в TextBox "ndstxtbx"
        'если нет, то завершаем событие через оператор Exit Sub
        
        'дальше проверяем ввели мы правильно числа или нет
        Try
            ' правильно
            rtwtrspplndstxtbx.Text = Convert.ToDouble(rtwtrsppltxtbx.Text) * (Convert.ToInt32(ndstxtbx.Text) / 100)
        Catch ex As Exception
             ' неправильно
        End Try
    End Sub
 
    Private Sub ndstxtbx_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ndstxtbx.TextChanged
 'Это наш код который будет обрабатывать всё что мы вводим в обоих TextBox
        _BB()
    End Sub
Добавлено через 12 минут
Справка с MSDN Оператор Try... Catch... Finally

Добавлено через 5 минут
вы скорее всего подсчитывали без проверок. например, есть число в TextBox или нету его или правильно введено число или нет. поэтому и выходила ошибка. для начало надо проверит всё ли у нас готово для решении задачи.
1
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
03.05.2014, 05:54  [ТС]
Ясно, не спите еще? А то у меня еще один вопрос возник.
Поставил на процедуру снимания галочки с в том числе НДС созданную процедуру clear_nds:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub clear_nds()
            'Проверка заполнения полей
            If rtwstwtrtxtbx.Text = String.Empty Then Exit Sub
            If rtwtrsppltxtbx.Text = String.Empty Then Exit Sub
            'Очистка сумм НДС
            Try
                rtwstwtrtxtbx.Clear()
                rtwtrsppltxtbx.Clear()
            Catch ex As Exception
 
            End Try
      End Sub
Собственно, ошибок не выдает, но и значение не удаляет.

Добавлено через 3 минуты
Вопрос снят, свою глупую ошибку нашел
0
03.05.2014, 06:12

Не по теме:

у меня только день, куда спать)))

0
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
03.05.2014, 07:24  [ТС]
Кликните здесь для просмотра всего текста
Камчатка! О_о
0
03.05.2014, 07:35

Не по теме:

ага))

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2014, 07:35
Помогаю со студенческими работами здесь

Проблема с выводом в textbox переменной типа double
проблема вот в чем, после нехитрого преобразования // это кусок кода, от калькулятора, выводящий значения на табло. // Я знаю, что у...

Как сгенерировать случайное число типа я double имея на входе 2 числа типа double - минимальное и максимальное
Например: public class ExtendedRandom : Random { public ExtendedRandom() : base() { ...

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

Замена значения из типа double
Используется для кнопок toolStrip1. При нажатии например на кнопку Сила, Функция или Работа меняется одно значение из функции t6 = (t2 /...

Ошибка вывода значения 0 типа double
При выполнении этого кода при значении x=0 не выводится четкий ноль. Почему? Я так понимаю нужно проводить округление? С printf такого нет....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 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
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru