Ionică Bizău
Ionică Bizău

Reputation: 113445

Converting a string into BigInteger

I have the following code that creates a very big number (BigInteger) which is converted then into a 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);

I know that for converting to int we can use Convert.ToInt32 and converting to long we use Convert.ToInt64, but what's about converting to BigInteger?

How can I convert a string (that represents a very very long number) to BigInteger?

Upvotes: 15

Views: 30067

Answers (2)

fubo
fubo

Reputation: 45967

Here is another approach which is faster compared to 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;
}

Upvotes: 0

Soner G&#246;n&#252;l
Soner G&#246;n&#252;l

Reputation: 98810

Use BigInteger.Parse() method.

Converts the string representation of a number in a specified style to its BigInteger equivalent.

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

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

Also you can check BigInteger.TryParse() method with your conversation is successful or not.

Tries to convert the string representation of a number to its BigInteger equivalent, and returns a value that indicates whether the conversion succeeded.

Upvotes: 25

Related Questions