2017-02-14 20 views
2

was muß ich stattdessen ToInt32 verwenden, lange Zeichenfolge Zahlenwert „10000000001“ in integer zu konvertieren, so dass diese Art und Weise ist auf eine zehnstellige Zahl begrenzt:Wie lange Zeichenfolge Zahlenwert in integer konvertieren

string str1 = "1000000000"; 
    string str2 = "1000000000"; 

    int a = Convert.ToInt32(str1); 
    int b = Convert.ToInt32(str2); 

    int c = a + b; 

    Console.WriteLine(c); 

Ergebnis:

2000000000 

aber wie konvertieren, wenn String Zahlenwert größer als zehnstellige Nummer lautet:

string str1 = "10000000001"; 
    string str2 = "10000000001"; 

zu bekommen Ergebnis:

20000000002 

Antwort

2

, wenn der Wert eine beliebige Zahl sein könnte, wie in es so groß oder klein wie eine beliebige Anzahl sein könnten Sie dann verwenden BigInteger Struktur denken kann, die in der System.Numerics Namespace gefunden wird .

Beispiel:

string str1 = "1000023432432432432234234324234324432432432432400000"; 
    string str2 = "1003240032432432423432432948320849329493294832800000"; 

    BigInteger BigInt = (BigInteger.Parse(str1) + BigInteger.Parse(str2)); // might want to validate before doing this. 
    Console.WriteLine(BigInt); 

Grundsätzlich BigInteger hat keine obere Grenze oder unteren Grenze zu begrenzen. Das einzige Limit ist Ihr RAM.

Wenn Ihre Nummer jedoch um mehr als 10 Stellen zu einem kleinen Betrag geht, können Sie auch int64 verwenden. der lange Datentyp

+1

sehr hilfreich danke – nikorio

Verwandte Themen