Я делаю проект в Visual Studio 2012 Microsoft, и я пытаюсь написать приложение для определения среднего значения модуля.«Преобразование из строки» «для типа« Двойной »недействителен»
Сценарий следующий:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles confirm.Click
Dim sum As Double
sum = CDbl(test.Text) * 50% + CDbl(project.Text) * 30% + CDbl(quiz.Text) * 30%
Dim modulemark As Double
modulemark = CDbl(CAmarks.Text) * 50% + CDbl(exam.Text) * 50%
Dim Grade As String
If sum < 40 Then
Grade = "F"
ElseIf sum >= 40 And modulemark < 65 And modulemark >= 40 Then
Grade = "C"
ElseIf sum >= 40 And modulemark < 75 And modulemark >= 65 Then
Grade = "B"
Else
Grade = "A"
End If
Скрипт предназначен для расчета марок и дать оценку после нажатия на кнопку с именем «Подтвердить».
Однако, когда я попытался запустить кодирование он сказал:
Необработанное исключение типа «System.InvalidCastException» произошло в Microsoft.VisualBasic.dll
Дополнительная информация: Преобразование из строки «» в тип «Двойной» недействителен.
Может кто-то увидеть, что не так? Я новичок в Visual Studio, и я ценю вашу помощь.
P.S. отредактировал недавний скрипт
P.S. Спасибо за пользователя «Тим» за скрипт , но по какой-то неизвестной причине в строке «Double.TryParse (caMarks.Text, caMarks)» есть синяя squiggly, которая направляет caMarks, в которой говорится: «Text» не является членом «двойного». Это буквально тянет мои волосы! пожалуйста помоги!
Похоже, что имена объектов противоречивы.
Хорошо - что не так, что вы где-то пытаетесь преобразовать «» в двойной. Вероятно, в одном из вызовов CDbl (*. Text). Отлаживайте свой код и узнайте, какой. –
Я отлаживал и сказал, что строка «sum = CDbl (test.Text) * 50% + CDbl (project.Text) * 30% + CDbl (quiz.Text) * 30%« неверно. Постскриптум Я попытался превратить раздел «Dim Grade As Integer» в «Dim Grade As Double», и он все еще не работает. какие-либо предложения? –
Вы вводили данные во все поля? Вы не можете оставить пробелы и предположить, что они будут установлены в 0. – NoChance