【问题标题】:Having trouble getting a percentage in visual basic无法在 Visual Basic 中获得百分比
【发布时间】:2017-05-14 19:33:20
【问题描述】:

在获取百分比作为程序的一部分时,我不断收到错误消息。

代码如下以及弹出错误的图像。

也是的,是的,我知道我可以编写一些代码行并减少变量,但此时我很绝望,所以我尝试了任何方法。也对不起我的拼写。

我在下面发布了代码。希望您能看到我使用的是服务基础数据库。

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

【问题讨论】:

  • 抱歉我的错误,我以为我将 Visual Basic 标记为不好,我确实发布了代码,那里有 2 张图片
  • 好的,我明白,感谢您的耐心等待我要疯了,这是一个拼贴项目,它让我发疯,除了当它进入这部分时,我尝试了如答案之一中提到的切换变量全部为字符串,但仍然没有
  • 我添加了一个 [vb.net] 标签。如果它不是 VB.Net(我使用它已经有一段时间了,所以我可能弄错了),再次编辑问题并将我添加的标签更改为更合适的标签。
  • 确保你没有被零除。它在错误弹出窗口的提示中这么说。
  • 是的,我已经确定这是我做的第一件事

标签: vb.net overflowexception


【解决方案1】:

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

您已将除数和总数声明为整数,百分比声明为小数。我认为您应该将所有变量转换为十进制或整数..

【讨论】:

  • 谢谢你照你说的做我仍然得到错误
猜你喜欢
  • 2021-06-09
  • 2021-01-09
  • 1970-01-01
  • 2012-12-03
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-18
相关资源
最近更新 更多