计算圆周率的前n位?



你好,我正在尝试编码计算π的前n位

using System;
using System.Numerics;
namespace PiCalculator
{

class Program
{

static void Main(string[] args)
{
System.Decimal.Precision = 5;
Console.WriteLine("How Many Digit?");
int n = Convert.ToInt32(Console.ReadLine());
decimal pi = 0;
decimal t = 0;
decimal deno = 0;
int k = 0;
t=1*(Factorial(1))*(13591409+545140134*k);
deno = ((decimal)Factorial(3*k))*((decimal)Math.Pow((double)Factorial(k),3))*((decimal)(Math.Pow(640320,(3*k))));
pi += t/deno;
pi = pi * 12 / (decimal)Math.Pow(640320,1.5);
pi = 1/pi;
Console.WriteLine(pi);
}
// Factorial fonksiyonu
static decimal Factorial(int n)
{
if (n == 0)
return 1;
return n * Factorial(n - 1);
}
}
}

我是c#的新手,我需要帮助设置十进制。精度请帮忙。

我试着计算n个圆周率并把它写出来。

代码可以计算,但是我不知道如何写出n个这样的计算结果

你可以写出pi从0到n的子字符串:

替换:Console.WriteLine(pi);

:Console.WriteLine(pi.ToString().Substring(0, (n > 1) ? n + 1 : n));

n + 1逻辑增加自小数"."不算作数字。注意,只有当用户指定的数字大于1时,才增加1 (n>1) .