关于VB编程求圆周率的一道小题

2025-02-26 08:12:53
推荐回答(4个)
回答1:

Private Sub Command1_Click()
Dim pi As Double, i As Long, 减号 As Boolean, 四分截断误差 As Double
Const 四分允许误差 = 0.00000001 '可以自己改
pi = 1
i = 3
减号 = True
Do
四分截断误差 = 1 / i
If 减号 Then
pi = pi - 四分截断误差
Else
pi = pi + 四分截断误差
End If
减号 = Not 减号
i = i + 2
Loop Until 四分截断误差 < 四分允许误差
Print "pi="; pi * 4
Print "截断误差<"; 四分截断误差 * 4
End Sub

回答2:

Option Explicit

Private Sub Command1_Click()
Dim i As Integer
Dim p As Double
Dim pi As Double
Dim a As Integer
Dim b As Integer
p = 1
a = 3
b = 2
For i = 0 To 10000
If i Mod 2 = 0 Then
p = p - 1 / a
Else
p = p + 1 / a
End If
a = a + b
Next i
pi = p * 4
MsgBox pi
End Sub
貌似循环位数越多越准确,200次是3.1366,1000次是3.1405,10000次是3.14149
需要的话可以吧I改成LONG类型试试

回答3:

Dim i As Double
Dim f As Integer
Dim p As Double
Dim c As Double
c = 10000000 '循环次数,越大越接近
f = 1
For i = 1 To c Step 2
p = p + f * 1 / i
f = -f '调整正负号
Next i
Print "pi=" & p * 4

回答4:

Function PI() As Double
Dim s As Long
Dim i As Long
s = 1
For i = 1 To 1000000 Step 2
PI = PI + 1 / i * s
s = -s
Next
PI = PI * 4
'Print PI
End Function