Integral constant is too large (CS1021) - How to put 1000 extremely big (70+ digits) integers in an array?

后端 未结 2 1897
醉酒成梦
醉酒成梦 2021-01-14 21:46

I\'m using the software SharpDevelop (C#).

I\'ve created a list of integers (array) like this:

int[] name = new int[number-of-elements]{elements-sepa         


        
2条回答
  •  失恋的感觉
    2021-01-14 22:04

    From .Net Framework 4.0 Microsoft introduced System.Numerics.dll which contains a BigInteger structure which can represents an arbitrarily large signed integer. for more information you can refer to http://msdn.microsoft.com/en-us/library/system.numerics.biginteger%28v=vs.100%29.aspx

            BigInteger[] name =
            {
                BigInteger.Parse("9999999999999999999999999999999999999999999999999999999999999999999999"),
                BigInteger.Parse("9999999999999999999999999999999999999999999999999999999999999999999999")
            };
    

    for older versions of framework you can use IntX library. you can obtain the package either from Nuget with Intall-Package IntX command or https://intx.codeplex.com/

            IntX[] name =
            {
                IntX.Parse("9999999999999999999999999999999999999999999999999999999999999999999999"),
                IntX.Parse("9999999999999999999999999999999999999999999999999999999999999999999999")
            };
    

    other problem is the biggest integer literal you can define in c# is ulong with max value of 18,446,744,073,709,551,615 (larger values leads to compile error), which is obviously not enough in your case, easy solution would be to use BigInteger.Parse or in case of IntX library IntX.Parse.

提交回复
热议问题