Vb.net 浮点精度visual basic
我想知道在计算pi时如何在visual basic中获得更多的数字。这是我的代码:Vb.net 浮点精度visual basic,vb.net,vba,excel,floating-point,Vb.net,Vba,Excel,Floating Point,我想知道在计算pi时如何在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 enn
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)
当我写这个答案时,问题被标记为VBA。 使用Decimal子变量类型可以获得更高的精度 这需要一点时间来运行
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:VBA无法处理比double更精确的数字,如果您想要更多,您必须处理字符串。xNumbers加载项可以实现这一功能,您可以在此处找到更新的xlam版本:查看.Net的BigInteger库。你必须稍微调整一下你的算法。它使用一些方法来执行减法和除法等运算。比多少位数还要多?双人间有一个房间。如果你需要更多,数字类型不会减少它,你需要专门的库。不完全正确。请看我的答案。变量的decimal数据子类型将带来比double更高的精度,但除此之外,确实需要字符串。