为什么此 vb.6 ln(x) 代码不适用于大于 2 的数字?
Why doesn't this vb.6 ln(x) code work for numbers larger than 2?
我为 ln 编写了这段代码作为作业,但它不适用于大于 2 的数字!
If Val(txt.Text) <= 0 Then
MsgBox "can't find ln !", vbExclamation + vbOKOnly, "ERROR": Exit Sub
Else
sign = -1
Sum = x - 1
r = 2
For j = 2 To 3 Step 0
t = sign * ((x - 1) ^ r / r)
If Abs(t) >= 0.0000001 And Abs(t) <= 100000000# Then
Sum = Sum + t
sign = -sign
r = r + 1
Else
GoTo 12
End If
Next
End If
这是方程式的图像:
非常感谢您的帮助,特别是 MarkL,我做到了!我为此感到非常高兴:)
如果你有兴趣,这里是最终代码^_^ :
If Val(txt.Text) <= 0 Then
MsgBox "can't find ln !", vbExclamation + vbOKOnly, "ERROR"
Exit Sub
ElseIf x < 0.51 Then
sign = -1
Sum = x - 1
For i = 2 To 500
t = sign * ((x - 1) ^ i / i)
If Abs(t) >= 0.0000001 Then
Sum = Sum + t
sign = -sign
Else
GoTo 12
End If
Next
Else
Sum = 0
For i = 1 To 600
t = ((x - 1) / x) ^ i
If Abs(t) < 10000000 Then
Sum = Sum + (t / i)
Else
GoTo 12
End If
Next
End If
我为 ln 编写了这段代码作为作业,但它不适用于大于 2 的数字!
If Val(txt.Text) <= 0 Then
MsgBox "can't find ln !", vbExclamation + vbOKOnly, "ERROR": Exit Sub
Else
sign = -1
Sum = x - 1
r = 2
For j = 2 To 3 Step 0
t = sign * ((x - 1) ^ r / r)
If Abs(t) >= 0.0000001 And Abs(t) <= 100000000# Then
Sum = Sum + t
sign = -sign
r = r + 1
Else
GoTo 12
End If
Next
End If
这是方程式的图像:
非常感谢您的帮助,特别是 MarkL,我做到了!我为此感到非常高兴:)
如果你有兴趣,这里是最终代码^_^ :
If Val(txt.Text) <= 0 Then
MsgBox "can't find ln !", vbExclamation + vbOKOnly, "ERROR"
Exit Sub
ElseIf x < 0.51 Then
sign = -1
Sum = x - 1
For i = 2 To 500
t = sign * ((x - 1) ^ i / i)
If Abs(t) >= 0.0000001 Then
Sum = Sum + t
sign = -sign
Else
GoTo 12
End If
Next
Else
Sum = 0
For i = 1 To 600
t = ((x - 1) / x) ^ i
If Abs(t) < 10000000 Then
Sum = Sum + (t / i)
Else
GoTo 12
End If
Next
End If