vb中用近似公式求∏

来源:百度知道 编辑:UC知道 时间:2024/06/14 16:33:53
下面程序运行完得答案是1.138584 正确答案应该是1.138574...实在看不出来哪里有问题,请高手帮帮忙!多谢了。
Option Explicit
Private Sub Form_Click()
Dim n%, t!, e!, i!, k!
n = 1
i = 1
Do
n = n + 1
t = 1 / n ^ 2
i = i + t
Loop Until t < 0.00001
e = i * 6
k = Sqr(e)
Print "∏="; k
End Sub

Private Sub Form_Click()
Dim n%, t!, e!, i!, k!
n = 1
i = 1
Do
n = n + 1
t = 1 / n ^ 2
If t < 0.00001 Then Exit Do
i = i + t
Loop 'Until t < 0.00001
e = i * 6
k = Sqr(e)
Print "∏="; k
End Sub
这样改就行了。如果用Loop Until t < 0.00001,那么当n=317时本应结束循环,但前面有 i = i + t,就是在结束之前又把t的值加上了,造成误差。还有一个更简单的改法:就是把t = 1 / n ^ 2
和i = i + t 两句颠倒一下,就不会多加了。