[C sharp] Sehr grosse zahlenvariable

Hallo zusammen

Ich habe eine string-variable mit 3000 zahlen.
Und eine int-variable mit max. 20 zahlen.

wenn ich die string-variable in eine int variable umwandeln will geht das nicht (zahl zu gross)

was ich mit dem anfange will:

Die zwei zahlen will ich multiplizieren und in eine string variable stecken.

Wie kann ich das machen? (ist es überhaupt möglich)

PHP: Integers - Manual

es geht schon, allerdings nur begrenzt. nicht die grösse des arrays ist entscheident sondern die grösse der zahlen.

interessant wäre, ob du mit var_dump oder intval arbeitest.

@sysop was hat php mit c# zu tuen? Gar nichts.

Da gibt es folgende Möglichkeiten:

string zahlen = "00000......";
int numbers = 00000....;
//1
int result = (int)zahlen * numbers;
//2
int result = Convert.ToInt32(zahlen)*numbers;

string result = result.ToString();

Achja wenn du solche Hohen Zahlen versucht zu multiplizieren, kann ich dir jetzt schon sagen, das solch eine Berechnung Jahre dauern wird.

Edit:
Darüber hinaus kannst du mit einem 32 Bit Wert maximal 2.147.483.647 als Wert haben. Als 64Bit Wert ist maximal 9.223.372.036.854.775.808 erlaubt. Und auch ein 128BitInt kann nicht 3000 Stellen haben, das wird nichts. In keiner Programmierersprache.

Es würden noch den Datentyp long geben.
Der hat mehr speicher als ein Integer (war zumindest mal so, kA, wies mit Int64 im vergleich aussieht)

long ist ein 64Bit Wert genauso wie int64 kann also auch nur bis zu 9.223.372.036.854.775.808 haben.

Hallo,

zum Verarbeiten von großen Zahlen kann man z.B. die BigInteger Klasse von CodeProject verwenden.

Eigentlich sollte C# 3.5 bereits eine integrierte BigInteger Klasse enthalten, die wurde aber kurz vorm Release wieder aus der Bibliothek (afaik aus Performance-Gründen) genommen.

N43

Hey,
schau mal hier: Corpsman - Vedische_Multiplication
ist zwar in Delphi geschrieben, aber da kannste dir ja was abschaun.

lg,
n1ob

edit:
warum ließt du eigentlich nicht den String Zeichen für Zeichen aus, castest die einzelnen Zeichen und verrechnest den KLrahm wie man das halt von Hand aufm Papier? macht (also die Grundschschulmethode)
So wär das mit Dezimalzahlen auch kein Problem.