回 帖 发 新 帖 刷新版面

主题:总是出现溢出?

代码如下
dim  i As Single, a As Double, n As Integer 
a = Val(InputBox("请输入年金数值", "年金数值"))
i = Val(InputBox("请输入利息率", "利率"))
n = Val(InputBox("请输入计息期数", "期数"))
Text1.Text = Str(a * (1 - (1 + i / 100)^ (-n)) / (i / 100))
运行后如果点击inputbox的取消按钮出现溢出,不知原因?望高手指点,高分给您。

回复列表 (共3个回复)

沙发

至少有两个办法:
1.设置错误陷阱:

Private Sub Command1_Click()
On Error GoTo 100
Dim i As Single, a As Double, n As Integer
i = Val(InputBox("请输入利息率", "利率"))
a = Val(InputBox("请输入年金数值", "年金数值"))
n = Val(InputBox("请输入计息期数", "期数"))
Text1.Text = Str(a * (1 - (1 + i / 100) ^ (-n)) / (i / 100))
100
End Sub

2.检查i是否等于0:

Private Sub Command1_Click()
Dim i As Single, a As Double, n As Integer
i = Val(InputBox("请输入利息率", "利率")): If i = 0 Then Exit Sub
a = Val(InputBox("请输入年金数值", "年金数值"))
n = Val(InputBox("请输入计息期数", "期数"))
Text1.Text = Str(a * (1 - (1 + i / 100) ^ (-n)) / (i / 100))
End Sub

板凳

非常感谢,问题终于解决了。太感谢您了,就是没考虑到i=0的情况。

3 楼

考虑到i=0的情况。

我来回复

您尚未登录,请登录后再回复。点此登录或注册