13

我有以下代码创建一个非常大的数字 ( BigInteger),然后将其转换为string.

// It's a console application.
BigInteger bi = 2;
for (int i = 0; i < 1234; i++)
{
   bi *= 2;
}
string myBigIntegerNumber = bi.ToString();
Console.WriteLine(myBigIntegerNumber);

我知道转换为int我们可以使用Convert.ToInt32并转换为long我们使用Convert.ToInt64,但是转换为BigInteger呢?

如何将 a string(代表一个非常长的数字)转换为BigInteger

4

2 回答 2

19

使用BigInteger.Parse()方法。

将指定样式的数字的字符串表示形式转换为其 BigInteger 等效项。

BigInteger bi = 2;
for(int i = 0; i < 1234; i++)
{
    bi *= 2;
}

var myBigIntegerNumber = bi.ToString();
Console.WriteLine(BigInteger.Parse(myBigIntegerNumber));

您也可以检查BigInteger.TryParse() 方法与您的对话是否成功。

尝试将数字的字符串表示形式转换为其等效的 BigInteger,并返回一个指示转换是否成功的值。

于 2013-01-06T15:04:48.123 回答
0

这是另一种更快的方法BigInteger.Parse()

public static BigInteger ToBigInteger(string value)
{
    BigInteger result = 0;
    for (int i = 0; i < value.Length; i++)
    {
        result = result * 10 + (value[i] - '0');
    }
    return result;
}
于 2018-04-25T08:14:10.433 回答