选择正确类型的变量C#

Sup*_*zar 3 c# string math variables pi

我想在小数点后创建pi超过16000个数字,但是problam是我找不到任何可以满足我意愿的类型.我尝试使用对象,但它在10之后将数字舍入我想使用字符串但字符串类型不能做减号或加号如果我将转换为int它将变成圆形.你知道我可以使用的任何其他类型或如何使用字符串工作,例如 http://files.extremeoverclocking.com/file.php?f=36这个程序能够计算多达3200万

日Thnx

Bob*_*son 5

看看这个页面和它的BigNumber课程.

首先要注意的是我们不能在C#中使用任何原始类型:它们只是没有足够的精度(例如,double类型只有15位有效数字,我们想要计算,比方说, 10000).我们需要一个大型精度数字库,但在.NET Framework中没有类似的东西,所以我们要做的第一件事就是编写一个BigNumber类.

该页面还提供了计算pi到1000个小数位的示例用法,因此将其运行16000应该相当简单.


运行它为16000位数需要我大约一秒半,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();
}
Run Code Online (Sandbox Code Playgroud)