#vb.net
#vb.net
Вопрос:
totalprice = cost cost1 cost2 cost3 cost4
Form2.Label24.Text = totalprice
vat = totalprice * 0.2
Form2.Label26.Text = vat
Form2.Label27.Text = totalprice vat
totalpricevat = totalprice vat
Form2.Show()
finance = finance1 totalpricevat
finance1 = totalpricevat * 0.05
finance2 = finance / 12
finance3 = totalpricevat * 0.1
finance4 = finance / 24
If ListBox1.SelectedItem = "12 Months" Then Form2.Label33.Text = finance2
If ListBox1.SelectedItem = "24 Months" Then Form2.Label33.Text = finance4
Выше приведен фрагмент кода, который я сделал для расчета финансирования нескольких выбранных элементов.
Label33 должен показывать результат finance2 и / или finance4 в зависимости от того, какой элемент выбран из listbox1, однако он работает не так, как предполагалось, он просто показывает «Label33». Как я могу заставить Label33 отображать результат finance2 и / или finance4. Это очень странно, потому что на прошлой неделе (когда я набирал этот код) он показывал его нормально. Сегодня я запустил программу, чтобы проверить, все ли работает нормально, и это происходит.
Я был бы признателен за любую помощь и, пожалуйста, объясните каждую часть вашего ответа, поскольку я довольно новичок в Visual Basic
Заранее спасибо!
Комментарии:
1. Попробуйте установить точку останова и выполнить отладку. Я думаю, что найти проблему довольно легко, мой друг.
2. Вы должны дать своим элементам управления значимые имена. Label33 и т. Д. Не Являются значимыми именами.
3. Пожалуйста, и не могу подчеркнуть это достаточно. Как говорит Мэри, приличные значимые имена для элементов управления и переменных. Это не для нашей пользы, это для вашей собственной. Кроме того, проблема, скорее всего, будет в ListBox1.SelectedItem не равен ни «12 месяцам», ни «24 месяцам». Я был бы удивлен, если бы это когда-нибудь произошло, поскольку SelectedItem возвращает объект, который вы сравниваете со строкой. Возможно, listBox1.SelectedItem. toString() — это исправление?
4. Поворот
Option Strict On
.
Ответ №1:
Вы никогда не используете finance3 в своем коде. Вы взимаете точно такую же финансовую плату за 1 год, как и за 2 года. Это сделка, которую я бы хотел. Я знаю, что это упражнение требует от вас быть одновременно бухгалтером и программистом. У вас есть значение finance1, вычисленное после того, как вы используете его для вычисления finance1 .
Я добавил значения для переменных стоимости, чтобы я мог протестировать.
Я выполнил расчеты для финансов в операторе If, поэтому вы рассчитали только один вариант.
Private Sub OPCode()
Dim cost = 10D, cost1 = 20D, cost2 = 30D, cost3 = 40D, cost4 = 50D
Dim totalprice = cost cost1 cost2 cost3 cost4
Form2.Label24.Text = totalprice.ToString("N2")
Dim vat = totalprice * 0.2
Form2.Label26.Text = vat.ToString("N2")
Form2.Label27.Text = (totalprice vat).ToString("N2")
Dim totalpricevat = totalprice vat
'Dim finance3 = totalpricevat * 0.1 You never use this in your code.
If ListBox1.SelectedItem.ToString = "12 Months" Then
Dim finance = totalpricevat * 1.05 / 12
Form2.Label33.Text = finance.ToString("N2")
ElseIf ListBox1.SelectedItem.ToString = "24 Months" Then
Dim finance = totalpricevat * 1.1 / 24 ' .1 is .05 x 2, interest for 2 years
Form2.Label33.Text = finance.ToString("N2")
End If
Form2.Show()
End Sub