运行时错误6:溢出,以vb6代码执行时间为单位
我在执行vb6应用程序时遇到运行时错误6溢出。 我在这条线上遇到了这个错误运行时错误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所说,这是因为您没有首先检查零的除法。我知道这似乎有误导性,
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