Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
321 / 289 / 104
Регистрация: 12.04.2011
Сообщений: 925

При сложении двух TextBox складывается только целые части чисел

07.11.2012, 14:51. Показов 2035. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем. Недавно выкладывал на форуме программку которую ща пишу, вот ссылка Изменять значение в одном TextBox-e изменяя значение в другом TextBox-e. Помогли, спасибо!
Но в процессе дальнейшего написания возникли ещё некоторые вопросы.
1. Результат сложения TextBox-ов, а именно 2 и 4 TextBox-а, должен выводится в TextBox-е №6.
НО...в TextBox-е №6 выводится сумма целой части TextBox-ов №2 и 4.
А при сложении TextBox-ов №1 и 3, результат которого выводится в TextBox-е №5, никаких (вроде бы) вопросов не возникает;
2. Если, допустим ввели значение в TextBox №1 любое значение и нажали Enter или пробел, то значение теряется. Подскажите в чём дело?
3. Почему данный вид записи значений в ComboBox не работает:
Visual Basic
1
2
3
4
5
6
Private Sub Form_Load()
             Combo1.List = Array("Листовая сталь", "Уголок", "Швеллер")
'            Combo1.AddItem "Листовая сталь", 0
'            Combo1.AddItem "Уголок", 1
'            Combo1.AddItem "Швеллер", 2
End Sub
А вот и сама программа:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
Option Explicit
Dim v As Double
Private Sub Form_Load()
      Combo1.AddItem "Ëèñòîâàÿ ñòàëü", 0
      Combo1.AddItem "Óãîëîê", 1
      Combo1.AddItem "Øâåëëåð", 2
      
      Combo3.AddItem "Ëèñòîâàÿ ñòàëü", 0
      Combo3.AddItem "Óãîëîê", 1
      Combo3.AddItem "Øâåëëåð", 2
End Sub
Private Sub Combo1_Click() 'âûáîð òèïà ïðîêàòà
'*******************************************
'òîëùèíà ìåòàëëà äëÿ ëèñòîâîé ñòàëè
Text1.Text = ""
Text2.Text = ""
Combo2.Clear
If Combo1.ListIndex = 0 Then
Combo2.Text = "Âûáåðèòå òîëùèíó ìåòàëëà"
Combo2.AddItem "2", 0
Combo2.AddItem "3", 1
Combo2.AddItem "5", 2
End If
'*******************************************
'òîëùèíà ìåòàëëà äëÿ óãîëêà
If Combo1.ListIndex = 1 Then
Combo2.Clear
Combo2.Text = "Âûáåðèòå äëèíó ïîëêè"
Combo2.AddItem "15", 0
Combo2.AddItem "20", 1
Combo2.AddItem "25", 2
End If
'*******************************************
'òîëùèíà ìåòàëëà äëÿ øâåëëåðà
If Combo1.ListIndex = 2 Then
Combo2.Clear
Combo2.Text = "Âûáåðèòå íîìåð ïðîêàòà"
Combo2.AddItem "¹20", 0
Combo2.AddItem "¹30", 1
Combo2.AddItem "¹40", 2
End If
End Sub
Private Sub Combo2_Click()
Text1.Text = ""
Text2.Text = ""
v = 0
If Combo1.ListIndex = 0 Then
Select Case Combo2.ListIndex
      Case 0:     v = 10
      Case 1:     v = 20
      Case 2:     v = 30
End Select
End If
If Combo1.ListIndex = 1 Then
Select Case Combo2.ListIndex
      Case 0:     v = 100
      Case 1:     v = 200
      Case 2:     v = 300
End Select
End If
If Combo1.ListIndex = 2 Then
Select Case Combo2.ListIndex
      Case 0:     v = 1000
      Case 1:     v = 2000
      Case 2:     v = 3000
End Select
End If
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
      Text2.Text = ""
   Select Case KeyAscii
      Case 48 To 57, 8
      Case 44, 46
         KeyAscii = 46
            If InStr(Text1.Text, ".") <> 0 Then
            KeyAscii = 0
         End If
      Case Else
         KeyAscii = 0
   End Select
End Sub
Private Sub Text1_Change()
Text2.Text = Round(Val(Text1.Text) * v / 1000, 3)
result
End Sub
Private Sub Text2_Change()
result_1
End Sub
 
Private Sub Combo3_Click() 'âûáîð òèïà ïðîêàòà
'*******************************************
'òîëùèíà ìåòàëëà äëÿ ëèñòîâîé ñòàëè
Text3.Text = ""
Text4.Text = ""
Combo4.Clear
If Combo3.ListIndex = 0 Then
Combo4.Text = "Âûáåðèòå òîëùèíó ìåòàëëà"
Combo4.AddItem "2", 0
Combo4.AddItem "3", 1
Combo4.AddItem "5", 2
End If
'*******************************************
'òîëùèíà ìåòàëëà äëÿ óãîëêà
If Combo3.ListIndex = 1 Then
Combo4.Clear
Combo4.Text = "Âûáåðèòå äëèíó ïîëêè"
Combo4.AddItem "15", 0
Combo4.AddItem "20", 1
Combo4.AddItem "25", 2
End If
'*******************************************
'òîëùèíà ìåòàëëà äëÿ øâåëëåðà
If Combo3.ListIndex = 2 Then
Combo4.Clear
Combo4.Text = "Âûáåðèòå íîìåð ïðîêàòà"
Combo4.AddItem "¹20", 0
Combo4.AddItem "¹30", 1
Combo4.AddItem "¹40", 2
End If
End Sub
 
Private Sub Combo4_Click()
Text3.Text = ""
Text4.Text = ""
v = 0
If Combo3.ListIndex = 0 Then
Select Case Combo4.ListIndex
      Case 0:     v = 10
      Case 1:     v = 20
      Case 2:     v = 30
End Select
End If
If Combo3.ListIndex = 1 Then
Select Case Combo4.ListIndex
      Case 0:     v = 100
      Case 1:     v = 200
      Case 2:     v = 300
End Select
End If
If Combo3.ListIndex = 2 Then
Select Case Combo4.ListIndex
      Case 0:     v = 1000
      Case 1:     v = 2000
      Case 2:     v = 3000
End Select
End If
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
      Text4.Text = ""
   Select Case KeyAscii
      Case 48 To 57, 8
      Case 44, 46
         KeyAscii = 46
            If InStr(Text3.Text, ".") <> 0 Then
            KeyAscii = 0
         End If
      Case Else
         KeyAscii = 0
   End Select
End Sub
Private Sub Text3_Change()
Text4.Text = Round(Val(Text3.Text) * v / 1000, 3)
result
End Sub
Private Sub Text4_Change()
result_1
End Sub
Sub result()
      Text5 = Val(Text1) + Val(Text3)
End Sub
Sub result_1()
      Text6 = Val(Text2) + Val(Text4)
End Sub
Буду благодарен за отклики и различные советы.
Всем откликнувшимся огромное спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.11.2012, 14:51
Ответы с готовыми решениями:

Найти целые и не целые части двух действительных чисел. Комментарии
#include &lt;iostream.h&gt; #include &lt;math.h&gt; void main() { double b,c,sum_cel =0,sum_drob = 0,n; ...

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

Переписать в другой файл только целые части данных чисел
Заполнить файл действительными случайными числами.Переписать в другой файл только целые части данных чисел!!!

10
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
07.11.2012, 15:46
3. ListBox в VB, в отличие от VBA, не заполняется в один приём из массива.
0
321 / 289 / 104
Регистрация: 12.04.2011
Сообщений: 925
07.11.2012, 16:07  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
3. ListBox в VB, в отличие от VBA, не заполняется в один приём из массива.
Апострофф - ты имеешь ввиду 3-ий вопрос?

Добавлено через 1 минуту
То есть КОМБОБОКС заполняется в столбец, как у меня ? в строчку, проше никак?
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
07.11.2012, 16:41
Цитата Сообщение от proft Посмотреть сообщение
проще никак?
Через цикл из массива - это проще или нет?

Добавлено через 5 минут
По поводу остальных вопросов - оставь том минимум кода и контролов, при которых проблемы остаются или приложи весь проект в архиве с описанием действий, вызывающих ошибки.
0
321 / 289 / 104
Регистрация: 12.04.2011
Сообщений: 925
07.11.2012, 17:00  [ТС]
Добавлено через 5 минут
По поводу остальных вопросов - оставь том минимум кода и контролов, при которых проблемы остаются или приложи весь проект в архиве с описанием действий, вызывающих ошибки.[/QUOTE]

Основная проблема, как мне кажется, на 171-174 строчке,


PureBasic
1
2
3
Sub result_1()
      Text6 = Val(Text2) + Val(Text4)
End Sub
так как данная процедура извлекает из ячеек целые значения чисел.
Пробовал различные способы, что-то не получается, поэтому может быть ошибка не в этом месте....хз.
Вложения
Тип файла: zip 1_Прога_для_подсчёта.zip (12.2 Кб, 10 просмотров)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
07.11.2012, 17:18
Функция VAL коварна - она не обрабатывает запятую. Правильно:

Visual Basic
1
val(Replace$(Txt,",","."))
1
321 / 289 / 104
Регистрация: 12.04.2011
Сообщений: 925
07.11.2012, 17:26  [ТС]
Catstail,спасибо) Сейчас попробовал вроде заработало)
А в чём может быть проблема, когда ввёл в ТЕКСТОВУЮ ячейку и нажимаю ЭНТЕр или ПРОБЕЛ, значение теряется, т.е. не отражается ТЕКСТОВОЙ ячейке, куда оно передаётся
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
07.11.2012, 17:29
Цитата Сообщение от proft Посмотреть сообщение
ввёл в ТЕКСТОВУЮ ячейку
- в текстбоксе?
0
321 / 289 / 104
Регистрация: 12.04.2011
Сообщений: 925
07.11.2012, 17:44  [ТС]
да. Допустим ввёл "234" в TextBox1, паралельно отражается в TextBox2.
Нажимаю ENTER или пробел в TextBox2 пропадает значение? Как можно этого избежать, ну или к примеру при нажатиии данных клавиш курсор перемещался в указанное мною место, к примеру "ComboBox2"
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
07.11.2012, 19:33
Что-то не понимаю, что происходит. Вот проект: два текстбокса дублируют друг друга. Ничего не пропадает...
Вложения
Тип файла: zip t033.zip (3.6 Кб, 9 просмотров)
0
321 / 289 / 104
Регистрация: 12.04.2011
Сообщений: 925
07.11.2012, 22:14  [ТС]
Catstail, спасибо))
Я вот что имею ввиду.
Я Вам выложил прогу в ней такая ошибка...
Выбрали в ПЕРВОМ комбобоксе, затем во ВТОРОМ и вводя в ТЕКСТ_1 значение (любое), в ТЕКСТ_2 отображается значение, если ввести значение в ТЕКСТ _1 и нажать ЕНТЕР или ПРОБЕЛ, то текст в ТЕКСТ_2 исчезает)))
Вот такие дела(
Вложения
Тип файла: rar 1_1.rar (1.8 Кб, 6 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2012, 22:14
Помогаю со студенческими работами здесь

При сложении двух целых чисел Коля поставил лишний ноль
При сложении двух целых чисел Коля поставил лишний ноль на конце одного из слагаемых и получил в сумме 777777 вместо 111111. Какие числа он...

При сложении по модулю два двух чисел по 48 бит пропадает 1 бит
Здравствуйте, помогите пожалуйста. В этой строке пропадает 1 бит, т.е. должно быть 48, а их 47. R =...

Заполнить файл действительными случайными числами.Переписать в другой файл только целые части данных чисел
Заполнить файл действительными случайными числами.Переписать в другой файл только целые части данных чисел!

При сложении двух переменных результат NaN
Выдает NaN что не так? { var r1='1872,55'; ; var r2='1872,55'; summ=(Number(r2) + Number(r1)); alert(summ); }

Найти значение результирующей интенсивности при сложении двух когерентных волн
Всем доброго времени суток. Помогите пожалуйста решить данную задачу: Найти значение результирующей интенсивности при сложении двух...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru