Возникли проблемы с получением процента в визуальном базовом
Я продолжаю получать ошибку, когда дело доходит до получения процента как части программы.
Код ниже, а также всплывающее изображение ошибки.
Также да, да, я знаю, что могу немного увеличить строку кода и меньше переменных, но в этот момент я был в отчаянии, поэтому я попробовал все. Также извините за мое правописание.
Я разместил код ниже. Я надеюсь, что вы видите, что я использую базу данных сервиса.
Public Class record
Dim total As Integer
Dim grade As Integer
Dim letter As String
Dim message As String
Dim porcentaje As Decimal
Dim budget As Integer
Dim divider As Integer
Private Sub AccountTableBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles AccountTableBindingNavigatorSaveItem.Click
Me.Validate()
Me.AccountTableBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.Database1DataSet)
End Sub
Private Sub record_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'Database1DataSet.report' table. You can move, or remove it, as needed.
Me.ReportTableAdapter.Fill(Me.Database1DataSet.report)
'TODO: This line of code loads data into the 'Database1DataSet.budgetTable' table. You can move, or remove it, as needed.
Me.BudgetTableTableAdapter.Fill(Me.Database1DataSet.budgetTable)
'TODO: This line of code loads data into the 'Database1DataSet.accountTable' table. You can move, or remove it, as needed.
Me.AccountTableTableAdapter.Fill(Me.Database1DataSet.accountTable)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
budget = BudgetNumericUpDown.Value
divider = budget
total = TotalNumericUpDown.Value
porcentaje = total / divider
grade = porcentaje * 100
If grade < 59 Then
letter = "F"
message = "You have fail completly your budget goal please rethink your expenses"
ReportTableAdapter.InsertQueryreport(grade, letter, message)
Dim form1 As report
form1 = New report
form1.Show()
Me.Hide()
ElseIf grade >= 59 And grade < 69 Then
letter = "D"
message = "You have fail part of your budget goal please rethink your expenses a little more"
ReportTableAdapter.InsertQueryreport(grade, letter, message)
Dim form1 As report
form1 = New report
form1.Show()
Me.Hide()
ElseIf grade >= 69 And grade < 79 Then
letter = "C"
message = "You have achive the minimun of your budget goal you can do better"
ReportTableAdapter.InsertQueryreport(grade, letter, message)
Dim form1 As report
form1 = New report
form1.Show()
Me.Hide()
ElseIf grade >= 79 And grade < 89 Then
letter = "B"
message = "You completed more then enough of your budget goal "
ReportTableAdapter.InsertQueryreport(grade, letter, message)
Dim form1 As report
form1 = New report
form1.Show()
Me.Hide()
ElseIf grade >= 89 Then
letter = "A"
message = "You completed you budget goal perfectly congratulation please tell me your secret"
ReportTableAdapter.InsertQueryreport(grade, letter, message)
Dim form1 As report
form1 = New report
form1.Show()
Me.Hide()
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim form1 As deposit
form1 = New deposit
form1.Show()
Me.Hide()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Me.Close()
End Sub
End Class
1 ответ
Исключение, которое выдается, когда арифметическая операция, операция приведения или преобразования в проверенном контексте приводит к переполнению. Источник MSDN
Вы объявили свой делитель и общее количество как целое число, а процент как десятичное число. Я думаю, что вы должны преобразовать все ваши переменные в десятичные или целые числа..