都跟书上一样了 ,可是有时候还会出现溢出错误 e.g.m=280,n=100时之类 怎么改进??

在命令按钮Command1的单击事件中计算m!/(n!*(m-n)!)的值,并在标签Label4中输出;当输入的m小于n时,直接在标签Label4中输出:"error" (不包括引号)
其中m、n依次分别由文本框Text1和Text2输入。
要求使用函数过程Factorial(n)实现计算n!。
说明:
1)不要更改函数名Factorial
2)函数参数n为整型
【我做的】
Function factorial(n As Integer) As Double
Dim i As Integer, T As Double
T = 1
For i = 1 To n
T = T * i
Next i
factorial = T

End Function
Private Sub Command1_Click()
Dim m As Integer, n As Integer
m = Val(Text1.Text): n = Val(Text2.Text)
If m < n Then
Label4.Caption = "error"
Exit Sub
End If
Label4.Caption = factorial(m) / (factorial(n) * factorial(m - n))
End Sub

阿波罗的战车
浏览 65回答 2
2回答

慕容708150

Dim i As Integer, T As Double这样 都溢出VB不支持你那么大的数值这不是你的错

小怪兽爱吃肉

就是你输入的数太大了计算280的阶乘超过vb表示的范围,溢出了
打开App,查看更多内容
随时随地看视频慕课网APP