Vb.net 在visual basic中获取百分比时遇到问题

Vb.net 在visual basic中获取百分比时遇到问题,vb.net,overflowexception,Vb.net,Overflowexception,当我把某个百分比作为一个程序的一部分时,我总是遇到一个错误 下面是代码以及弹出的错误图像 也是的,是的,我知道我可以增加一些代码行和更少的变量,但在这一点上,我是绝望的,所以我尝试了一切。对我的拼写也很抱歉 我把代码贴在下面。我希望您能看到我正在使用一个基于服务的数据库 Public Class record Dim total As Integer Dim grade As Integer Dim letter As String Dim message As

当我把某个百分比作为一个程序的一部分时,我总是遇到一个错误

下面是代码以及弹出的错误图像

也是的,是的,我知道我可以增加一些代码行和更少的变量,但在这一点上,我是绝望的,所以我尝试了一切。对我的拼写也很抱歉

我把代码贴在下面。我希望您能看到我正在使用一个基于服务的数据库

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
公共类记录
将总计设置为整数
将等级设置为整数
将字母变暗作为字符串
将消息设置为字符串
以十进制表示的暗淡瓷器
将预算设置为整数
作为整数的Dim除法器
私有子AccountTableBindingNavigatorSaveItem\单击(发件人作为对象,e作为事件参数)处理AccountTableBindingNavigatorSaveItem。单击
Me.Validate()
Me.AccountTableBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.Database1DataSet)
端接头
私有子记录加载(发送者作为对象,e作为事件参数)处理MyBase.Load
'TODO:这行代码将数据加载到'Database1DataSet.report'表中。您可以根据需要移动或删除它。
Me.ReportTableAdapter.Fill(Me.Database1DataSet.report)
'TODO:这行代码将数据加载到'Database1DataSet.budgetTable'表中。您可以根据需要移动或删除它。
Me.BudgetTableTableAdapter.Fill(Me.Database1DataSet.budgetTable)
'TODO:此行代码将数据加载到'Database1DataSet.accountTable'表中。您可以根据需要移动或删除它。
Me.accountTableAdapter.Fill(Me.Database1DataSet.accountTable)
端接头
私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
预算=BudgetNumericUpDown.Value
分配者=预算
总计=TotalNumericUpDown.Value
porcentaje=总/分压器
等级=porcentaje*100
如果等级<59,则
字母=“F”
message=“您完全没有达到预算目标,请重新考虑您的开支”
ReportTableAdapter.InsertQueryreport(等级、字母、消息)
Dim表格1作为报告
form1=新报告
表格1.Show()
我躲起来
如果等级>=59,则等级<69
字母=“D”
message=“您的预算目标有一部分失败,请重新考虑一下您的开支”
ReportTableAdapter.InsertQueryreport(等级、字母、消息)
Dim表格1作为报告
form1=新报告
表格1.Show()
我躲起来
如果等级>=69,则等级<79
字母=“C”
message=“您已经达到了预算目标的最低限度,您可以做得更好”
ReportTableAdapter.InsertQueryreport(等级、字母、消息)
Dim表格1作为报告
form1=新报告
表格1.Show()
我躲起来
如果等级>=79,则等级<89
字母=“B”
message=“您完成的预算目标已经足够了”
ReportTableAdapter.InsertQueryreport(等级、字母、消息)
Dim表格1作为报告
form1=新报告
表格1.Show()
我躲起来
如果等级>=89,则
字母=“A”
message=“你完美地完成了预算目标祝贺你,请告诉我你的秘密”
ReportTableAdapter.InsertQueryreport(等级、字母、消息)
Dim表格1作为报告
form1=新报告
表格1.Show()
我躲起来
如果结束
端接头
私有子按钮2\u单击(发送者作为对象,e作为事件参数)处理按钮2。单击
Dim表格1作为存款
表格1=新存款
表格1.Show()
我躲起来
端接头
私有子按钮3\u单击(发送者作为对象,e作为事件参数)处理按钮3。单击
我
端接头
末级

当选中上下文中的算术、强制转换或转换操作导致溢出时引发的异常。


您已将除法器和总数声明为整数,百分比声明为小数。我想你应该把所有变量都转换成十进制或整数。

对不起,我犯了错误,我以为我把visual basic标记为“我的坏”,我做了后期代码,有两张图片,好的,我理解,感谢你的耐心,我快疯了,这是一个拼贴项目,它让我发疯了,除了这部分,其他一切都正常就像在一个答案中提到的,将所有变量都切换为字符串,但仍然是空的。我添加了一个[vb.net]标记。如果它不是VB.Net(我使用它已经有一段时间了,所以我可能弄错了),请再次编辑该问题,并将我添加的标记更改为更合适的标记。确保你没有被零除。在错误弹出窗口的提示中是这样说的。是的,我已经确定这是我做的第一件事。谢谢,即使这样做了你告诉我的,我仍然得到了错误