このページを見てください。それはBigNumber
クラスです。
最初に注意すべきことは、C# ではどのプリミティブ型も使用できないということです。それらには十分な精度がありません (たとえば、double 型は有効桁数が 15 桁しかなく、計算したい、たとえば、 10000)。大精度の数値ライブラリが必要ですが、.NET Framework にはそのようなものはありません。したがって、最初に行う必要があるのは、BigNumber クラスを作成することです。
このページには、小数点以下 1000 桁までのpiを計算するための使用例も示されているため、16000 に対して実行するのはかなり簡単です。
16000 桁の場合は約 1 秒半かかり、160,000 桁の場合は 2 分強かかります。
PrintAsTable()
リンクされた投稿が読者の演習として残している私の関数は次のとおりです。
public string PrintAsTable() {
var data = Print();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
if (data[i] == '.') sb.AppendLine(".");
else if ((i -1) % 50 == 0) sb.AppendLine(data[i].ToString());
else if ((i -1) % 10 == 0) {sb.Append(data[i].ToString()); sb.Append(" ");}
else sb.Append(data[i].ToString());
}
return sb.ToString();
}