Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / TextBox и арифметика / 9 сообщений из 9, страница 1 из 1
23.01.2013, 15:40
    #38121629
Viadrin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TextBox и арифметика
Добрый день форумчане, у меня довольно нубский вопрос, прошу извинить, если что, но все же...

Есть UserForm и на ней TextBox1 и TextBox2. В эти боксы вручную вписываются числовые значения. Есть макрос который выдает сумму числовых значений бокса1 и бокса2. Вот тут проблемка, значение возвращается не верно, то есть, если TextBox1=1 TextBox2=0, то макрос возвращает значение 10. (1 и 0 склеиваются как бы).

Код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub CommandButton1_Click() 
Dim a as double

a= UserForm1.TextBox1.Value + UserForm1.TextBox2.Value

MsgBox a

End Sub




Спасибо за помощь
...
Рейтинг: 0 / 0
23.01.2013, 15:44
    #38121637
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TextBox и арифметика
Код: plaintext
a =  CDbl( UserForm1.TextBox1.Value )  +  CDbl( UserForm1.TextBox2.Value ) 
...
Рейтинг: 0 / 0
23.01.2013, 15:49
    #38121647
Viadrin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TextBox и арифметика
Спасибо Вам большое за помощь! Все заработало. Вас бы не затруднило написать предложение, озвучивающее в чем была проблема и как Вам удалось ее решить. Это чтобы я на будущее знал. Заранее благодарю.
...
Рейтинг: 0 / 0
23.01.2013, 15:51
    #38121654
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TextBox и арифметика
Viadrin,

Необходимо при чтении свойства из текстового поля преобразовывать данные в нужный тип. По умолчанию читается тип String. И сложение двух строк приводит к их конкатенации (объединению). Поэтому через функцию CDBl( ) - мы преобразовали оба аргумента к типу Double. Также есть другие функции CBool, CInt, CSng, CStr, CDec - описание есть в MSDN или в любом букваре по VBA/VB6
...
Рейтинг: 0 / 0
23.01.2013, 15:51
    #38121655
Gwa
Gwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TextBox и арифметика
Viadrin,
Весь секрет в том, что Ваш код выполняет не сложение, а конкатенацию строк
...
Рейтинг: 0 / 0
23.01.2013, 15:54
    #38121664
Viadrin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TextBox и арифметика
Всем спасибо за оперативную и квалифицированную помощь, тема может считаться закрытой.
...
Рейтинг: 0 / 0
23.01.2013, 15:54
    #38121666
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TextBox и арифметика
В том, что TextBox1.Value это строка, а не число. Числа складываются, строки склеиваются.
Если строки содержат числа, над которыми нужно провести арифметические операции, то перед этим нужно привести их к нужному числовому типу.
...
Рейтинг: 0 / 0
23.01.2013, 15:54
    #38121669
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TextBox и арифметика
ну, налетели...
...
Рейтинг: 0 / 0
23.01.2013, 16:07
    #38121725
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TextBox и арифметика
Antonariyну, налетели...рекорд по количеству одновременных постов в ветку )))
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / TextBox и арифметика / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]