永发信息网

vb求pi问题

答案:3  悬赏:30  手机版
解决时间 2021-05-16 01:03
  • 提问者网友:火车头
  • 2021-05-15 07:57

请问这段代码哪里出错了呢?当我输入500时,就是求不到pi,正确的pi应该是3.14几啊。

最佳答案
  • 五星知识达人网友:酒醒三更
  • 2021-05-15 09:32
Private Sub Form_Click()

Dim pi As Double

Dim t As Double

Dim n As Long

Dim f As Integer

n = InputBox("请输入N的值:")

pi = 0: t = 1: f = 1

For i = 1 To n

t = 1 / (2 * i - 1) '第1空

pi = pi + t * f '第2空

f = -f '第3空 这里用-f来控制就对了

Next i

Print "PI="; 4 * pi '第4空

End Sub

格里高利公式是这个样子的:


你用f = -1 ^ (i-1)有2个错误
第一:i-1当i=1时=0,任意数的0次方=1,而下次f应该是-1才对,所以你弄反了!
第二:-1 ^ (i-1),由于^的优先级别比-高,所以你以后每次得到的f都是-1,根本没有-1!
综合这两点,如果要在你的代码基础上修改的话,那一句应该改成这样:
f = (-1) ^ i
不过我认为还是没有f = -f来的简单和高效!
全部回答
  • 1楼网友:纵马山川剑自提
  • 2021-05-15 12:37
你这似乎不是求PI的公式啊
  • 2楼网友:野味小生
  • 2021-05-15 10:58
能不能发代码,别发图片呀?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯