Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение значения типа Double из TextBox 
:(
    Опции темы
ServanteS21
Дата 3.5.2014, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.4.2014

Репутация: нет
Всего: нет



Здравствуйте. 
Подскажите пожалуйста, как правильно преобразовать данные из TextBox в тип Double? 
Пусть условно есть три текст бокса: Тариф на водоснабжение, размер НДС, и сумма НДС. 
Установил на процедуру ввода значения в "Тариф на водоснабжение" следующее: 
Код

rtwtrspplndstxtbx.Text = Convert.ToDouble(rtwtrsppltxtbx.Text) * (Convert.ToInt32(ndstxtbx) / 100)


VS2010 ничего не подчеркивает, ни на что не ругается, но при вводе цифрового значения в "Тариф на водоснабжение" выдает ошибку "Входная строка имела неверный формат". В прочем, при вводе буквы выдает ту-же ошибку.
PM MAIL   Вверх
ServanteS21
Дата 3.5.2014, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.4.2014

Репутация: нет
Всего: нет



Если кому понадобится, вот решение:
Код

 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


Все обсуждение велось на киберфоруме, за подробностями можно туда.
PM MAIL   Вверх
diadiavova
Дата 3.5.2014, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(ServanteS21 @  3.5.2014,  03:34 Найти цитируемый пост)
Подскажите пожалуйста, как правильно преобразовать данные из TextBox в тип Double? 

А зачем использовать текстбокс для ввода чисел, когда для этого существует NumericUpDown ? Во-первых, он просто не примет текст в неверном формате. Во-вторых, у него есть удобные кнопочки для изменения значения мышкой(не обязательно, можно и с клавиатуры вводить). В-третьих, он имеет ряд настроек, таких как: установка диапазона допустимых значений, количество десятичных знаков, минимальный шаг изменения и т. д. В-четвертых, его свойство Value уже возвращает Double. Так что не очень понятно, зачем изобретать велосипед.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0563 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.