2013-01-06 6 views
6

Der Versuch, eine große Anzahl an eine BigInteger in C#Fehler bei der Zuordnung große Anzahl an BigInteger

BigInteger number= 27419669081321110693270343633073797; 

zuweisen, aber es zeigt Fehler:

Integral konstant zu groß

Ich dachte, dass BigInteger ist so groß wie mein RAM so wie kann ich diese Nummer aufverschieben?

Antwort

9

Ich denke, Sie können es mit BigInteger.Parse(String) tun. Ohne viel über C# zu wissen, denke ich, dass der richtige Teil der Aufgabe der falsche ist. Die Nummer ist zu groß.

+0

Ja, es funktioniert, dank –

+1

Ja, die Zahl ist zu groß für die versuchte implizite Konvertierung in den 'ulong' Typ (' ulong.MaxValue = 18446744073709551615UL'). '27419669081321110693270343633073797' ist eine konstante Deklaration, von der' BigInteger' kein gültiger Typ ist (gültige Typen sind 'sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, bool, string ', ein Enum-Typ oder ein Referenz-Typ). –

0

Ich überprüfte meine VS und Parsing-Erfolg. Versuchen mit dieser Methode zu analysieren:

BigInteger mybigint; 
bool checkparse=BigInteger.TryParse("27419669081321110693270343633073797",out mybigint); 
if(checkparse==false) 
    //You can't parse this string 
else 
    //string parsed 
0

BigInteger Der Typ ist ein Typ, der unveränderliche repräsentiert eine beliebig große ganze Zahl ist, deren Wert in der Theorie hat keine obere oder untere Grenzen.

Wie Burkhard und Hank sagt, sollten Sie BigInteger.Parse() Methode dafür verwenden.

BigInteger number= BigInteger.Parse("27419669081321110693270343633073797"); 

Auch don 'vergessen;

Wenn Sie die Parse() Methode verwenden, die Stringdarstellung ein BigInteger Wert auf Round-Trip, die Ausgabe durch die ToString Methode war, sollten Sie verwenden, um die BigInteger.ToString(String) Methode mit dem „R“ Format Spezifizierer die erzeugen Zeichenfolgendarstellung des Wertes BigInteger . Andernfalls behält die Stringdarstellung des BigInteger nur die höchstwertigen Stellen des ursprünglichen Wertes, und Daten verloren gehen können, wenn Sie die Parse-Methode verwenden, um die BigInteger Wert wiederherzustellen.

Verwandte Themen