运行时错误6:溢出,以vb6代码执行时间为单位

运行时错误6:溢出,以vb6代码执行时间为单位,vb6,Vb6,我在执行vb6应用程序时遇到运行时错误6溢出。 我在这条线上遇到了这个错误 Sections("Section5").Controls("lblcap").Caption = Format(((lTotOperMins - KPIDown) / lTotOperMins) * 100, "#0.00") 值lTotOperMins=0、KPIDown=0、和数据类型为Long 这个代码有什么问题。请告诉我,我对VB6不熟悉。正如jac所说,这是因为您没有首先检查零的除法。我知道这似乎有误导性,

我在执行vb6应用程序时遇到运行时错误6溢出。 我在这条线上遇到了这个错误

Sections("Section5").Controls("lblcap").Caption = Format(((lTotOperMins - KPIDown) / lTotOperMins) * 100, "#0.00")
lTotOperMins=0、KPIDown=0、
数据类型
Long

这个代码有什么问题。请告诉我,我对VB6不熟悉。

正如jac所说,这是因为您没有首先检查零的除法。我知道这似乎有误导性,因为你没有得到那个错误,你得到的是溢出

至于为什么你得到的不是被零除,而是被零除,我还没有清醒到可以深入思考的程度,只是简单地检查一下,就可以修复溢出。下面是一个导致溢出的示例,后面是一个没有错误的工作示例:

编辑:#####查看底部显示如何将两个零相除导致溢出,如果一个数字不是0,则它将变成0除错误。代码在底部。 溢出错误: 显示溢出发生位置的图像(无法上载,信誉不足):

工作示例: 将两个零相除会导致溢出错误
正如jac所说,这是因为你没有先检查除法是否为零。我知道这似乎有误导性,因为你没有得到那个错误,你得到的是溢出

至于为什么你得到的不是被零除,而是被零除,我还没有清醒到可以深入思考的程度,只是简单地检查一下,就可以修复溢出。下面是一个导致溢出的示例,后面是一个没有错误的工作示例:

编辑:#####查看底部显示如何将两个零相除导致溢出,如果一个数字不是0,则它将变成0除错误。代码在底部。 溢出错误: 显示溢出发生位置的图像(无法上载,信誉不足):

工作示例: 将两个零相除会导致溢出错误
不确定为什么会出现溢出错误,但问题是lTotOperMins=0。您不能除以0。是的,但当我需要传递该值时,解决方案是什么?如果lTotOperMins=0,则
Sections(“Section5”)。控件(“lblcap”)。Caption=“0”
?不确定为什么会出现溢出错误,但问题是lTotOperMins=0。您不能除以0。是的,但当我需要传递该值时,解决方案是什么?如果lTotOperMins=0,则
Sections(“Section5”)。控件(“lblcap”)。Caption=“0”
?@user3463529:您应该将Daniel的答案标记为正确。@user3463529:您应该将Daniel的答案标记为正确。
Private Sub Form_Load()
  Dim lTotOperMins As Long, KPIDown As Long
  Dim lonDifference As Long

  lTotOperMins = 0
  KPIDown = 0

  ' Prevent / by 0
  lonDifference = lTotOperMins - KPIDown

  'If 0 = lonDifference Then
    'Label1.Caption = Format(0, "#0.00")
  'Else
    Label1.Caption = Format(((lonDifference) / lTotOperMins) * 100, "#0.00")
  'End If

End Sub
Private Sub Form_Load()
  Dim lTotOperMins As Long, KPIDown As Long
  Dim lonDifference As Long

  lTotOperMins = 0
  KPIDown = 0

  ' Prevent / by 0
  lonDifference = lTotOperMins - KPIDown

  If 0 = lonDifference Then
    Label1.Caption = "0.00"
  Else
    Label1.Caption = Format(((lonDifference) / lTotOperMins) * 100, "#0.00")
  End If

End Sub
Private Sub Form_Load()
  Dim a As Long, b As Long

  a = 0
  b = 0

  Debug.Print a / b
End Sub