2015-10-20 74 views
2

我想知道如何在計算pi時獲得更多數字的visual basic。這是我的代碼:float precision visual basic

Dim enne, phi As Double 
    phi = 1 
    Console.WriteLine("Insert numble of cycles") 
    enne = Console.ReadLine 
    For i = 0 To enne 
     phi = 6 + ((2 * enne + 1) * (2 * enne + 1))/phi 
     enne = enne - 1 
    Next 
    phi = phi - 3 

    Console.WriteLine("pi is") 
    Console.WriteLine(phi) 
    Console.WriteLine("normal pi is ") 
    Console.WriteLine(Math.PI) 
+0

更多數字比多少? Double具有[15位精度](https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx)。如果你需要更多,數字類型不會削減它,你需要專門的庫。 – GolezTrol

回答

1

當我寫這個答案時,問題被標記爲VBA。

使用十進制子變量類型可以獲得更高的精度。

這需要一點時間來運行...

Sub Pi() 

    Dim enne As Variant, phi As Variant 
    phi = CDec(1) 

    enne = 100000000 

    For i = 0 To enne 
     phi = 6 + ((2 * enne + 1) * (2 * enne + 1))/phi 
     enne = enne - 1 
    Next 
    phi = phi - 3 

    Debug.Print " 3.14159265358979323846264338327950288419716" 
    Debug.Print phi 

End Sub 

實際PI在這裏:http://www.piday.org/million/

0

VBA不能超過一倍更好的精度處理的數字,如果你想要更多,你必須用字符串解決問題。該xNumbers插件可以做到這招,你可以找到一個更新版本xlam這裏:http://www.thetropicalevents.com/Xnumbers60.htm

+0

並非完全如此。請看我的答案。該變體的小數數據子類型會比double更精確,但除此之外,確實需要字符串。 –