vb2010计算圆周率
Dim i, x As Integer
i = 1
x = 1
Do
x = x + 1
i = i + 2
pi = 1 + 1 / (i + 2) * -1 ^ x
Loop While Math.Abs(1 / (i + 2) * -1 ^ x) < 0.00000001
Label1.Text = pi * 4
为什么输出是3.2??? 展开
你的程序有多处严重错误:
Private Sub Command1_Click()
Dim pi As Single
Dim i, x As Single '这里你的定义Integer,1/65535, 比你的0.00000001还要大,所以如果你要计算到你的值,应当把i,x定义为 Single
Print 1 / 65535 > 0.00000001
' pi=4/1-4/3+4/5-4/7+....
' 4分之一 pi=1/1-1/3+1/5-1/7+....
pi = 1
i = 1
x = 1
Print 1 / 3 * -1 ^ 2
Print 1 / 3 * (-1) ^ 2
Do
'pi应该在循环中累加,你没有加是不对的
pi = pi + 1 / (i + 2) * (-1) ^ x '这里根据运算符优先级的关系,因为次方运算符大于负数符号,如果不对-1加括号,在偶次方的时候,还是负的
i = i + 2
x = x + 1
Loop While Math.Abs(1 / (i + 2) * (-1) ^ x) > 1 / 2001 '这里除了符号的关系,最关键的是你对do loop while的条件设置反了!
'这里同时,如果设置为0.00000001,计算机将计算很长时间,所以为了缩短时间,设置为1 / 2001
Label1.Caption = pi * 4 '这里vb6没有Label1.text属性,你如果用2010可以自己修改下
End Sub