PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   vb6高手求教?圓周率的程式如何寫呢? (https://www.pcdvd.com.tw/showthread.php?t=730530)

=風= 2007-07-07 08:21 PM

vb6高手求教?圓周率的程式如何寫呢?
 
小弟最去想要求出圓周率小數位以下100位數
請問如何用vb6寫這個程式呢?
公式如下


順便把一百位數列出如下
3.1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 5923078164 0628620899 8628034825 3421170679
麻煩,謝謝 :)

地海巫師 2007-07-07 08:53 PM

PRINT
PRINT 3.1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 5923078164 0628620899 8628034825 3421170679

:ase :ase :ase

=風= 2007-07-07 09:44 PM

小弟洗個澡之後
就看到有人回答
心想
怎麼會有如此的高手出現
原來...... :)

FY24FR 2007-07-07 10:07 PM

這不算很難吧?

dim x,i,f as integer
dim pi as double(我不太確定是不是用double還是real...家裡電腦沒裝vb6)
dim strPi as string

x=1
f=-1
pi=0
n=100(或是另外寫介面自行決定n要多少)

for i=1 to n
f=f*f
x=x+2
pi=pi+f*(4/x)
next i

strPi=left(cstr(pi),102)

歡迎指正或修正.

kinyoliu 2007-07-07 10:26 PM

用double 倍精數 數字小就用單精數

太久沒用vb

kec 2007-07-08 02:08 AM

不能用double,因為double大概是14~15位有效位數,無法達到樓主要求的精確至小數點下100位。

capitalm 2007-07-08 02:21 AM

這個要先弄出大數加法、除法
要判斷100位精準度,實際計算的位數一定要超過100位

kec 2007-07-08 02:28 AM

為什麼樓主要選Gregory-Leibniz series這個收斂很慢的級數來算圓周率? :confused:
要精確到小數點下100位要計算很多很多很多項,怕CPU沒事做嗎? :p

=風= 2007-07-08 06:18 AM

引用:
作者kec
為什麼樓主要選Gregory-Leibniz series這個收斂很慢的級數來算圓周率? :confused:
要精確到小數點下100位要計算很多很多很多項,怕CPU沒事做嗎? :p

因為只要這個公式
比較容易懂
其他的公式更難了
小數位一百位
對現在的cpu應該還不至於太困難的工作(小弟猜的 :D )

=風= 2007-07-08 06:20 AM

引用:
作者capitalm
這個要先弄出大數加法、除法
要判斷100位精準度,實際計算的位數一定要超過100位

目前就是卡在這個問題要如何解 :)


所有的時間均為GMT +8。 現在的時間是02:53 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。