关于VB编程溢出,在线等
来源:百度知道 编辑:UC知道 时间:2024/05/13 12:01:40
Option Explicit
Private Sub Command1_Click()
Dim N As Integer, M As Integer, K As Integer, SUM As Long
N = CInt(Text1.Text)
M = CInt(Text2.Text)
K = N
SUM = 1
Do While K <= M
SUM = SUM * K
K = K + 1
Loop
Text3.Text = SUM
End Sub
这四求自然数连乘积的程序,但是数取的太大的时候就会溢出,有什么办法可以解决这个问题呢?谢谢!
Private Sub Command1_Click()
Dim N As Integer, M As Integer, K As Integer, SUM As Long
N = CInt(Text1.Text)
M = CInt(Text2.Text)
K = N
SUM = 1
Do While K <= M
SUM = SUM * K
K = K + 1
Loop
Text3.Text = SUM
End Sub
这四求自然数连乘积的程序,但是数取的太大的时候就会溢出,有什么办法可以解决这个问题呢?谢谢!
数取的太大的时候就会溢出, 那是必然的。
即使你使用VB中数据范围最大的decimal, 但他总是有限的。
而你这个乘法他的结果可能的最大值实在太大,所以你必须要限制输入的数据。
当然还有一个办法就是作出错处理,在溢出时给出一个出错提示而不至于使程序不能继续运行下去。
代码如下:
Option Explicit
Private Sub Command1_Click()
Dim N As Integer, M As Integer, K As Integer, SUM, rep
On Error GoTo ErrorHandler
N = CInt(Text1.Text)
M = CInt(Text2.Text)
K = N
SUM = CDec(1)
Do While K <= M
SUM = SUM * K
K = K + 1
Loop