因为10的阶乘是 3628800 interger 不够长,用long 其实也可以,
双精度浮点 DOUBLE 存储的位最长,估计是这方面考虑,所以就DOUBLE了,当然阶乘永远不可能出现 小数
没有任意数的,EXCEL中到175以后就已经非常大了,溢出错误
你是不是要在ACCESS中做个自定义函数求
Public Function fac(x As Long)
fac = 1
For i = 1 To x
fac = fac i
Next i
End Function
我这里没有帮你加错误判断进去,数值太大就会溢出的
Private Sub CommandButton1_Click()
Dim a, b1, b2, i, tmp
Set b1 = MeTextBox1
Set b2 = MeTextBox2
a = b1Text
If Len(a) = 0 Then tmp = "#Len = 0": GoTo 1000
If Not IsNumeric(a) Then tmp = "#Not Is Number": GoTo 1000
a = a 1
If Int(a) <> a Then tmp = "#not Integer": GoTo 1000
If a < 1 Or a > 9 Then tmp = "#" & IIf(a < 1, "<1", ">9"): GoTo 1000
tmp = a
For i = a - 1 To 2 Step -1
tmp = tmp i
Next
1000:
b2Text = tmp
End Sub
Dim s As Long, nn As Long, i As Integer
s = 0: nn = 1
For i = 1 To 10
nn = nn i
s = s + nn
Next i
MsgBox ("1!+2!+3!++10!=" & s)
以上就是关于vba求10的阶乘为什么要dim变量为double全部的内容,包括:vba求10的阶乘为什么要dim变量为double、ACCESS中如何用VBA模块编写任意数的阶乘、VBA代码编写,在窗体的文本框TextBox1中输入不大于9的整数,然后计算其阶乘后在文本框TextBox2中输出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)