Questo topic e' stato chiuso dal moderatore.
30/07/08 10:18
Matthew
Ciao a tutti,
sto provando a scrivere un programma che possa gestire grandi numeri, ossia al di la della portata delle normali variabili numeriche. Per farlo volevo dividere il numero in un array di stringhe ognuna delle quali contiene 5 cifre. Finora sono riuscito a creare una struttura chiamata Gnum (Grande numero) che divide il numero in due array: uno per la parte intera e uno per i decimali.
Mi spiego meglio:
creata la struttura
posso facilmente creare un grande numero così:
il problema però e che non riesco a creare due grandi numeri distinti, infatti il seguente codice :
crea si due grandi numeri, ma quando viene creato il secondo il primo si modifica da solo e diventa uguale al secondo.
Come posso fare per risolvere questo problema?
Grazie per l'attenzione e grazie in anticipo per l'aiuto!
Buona giornata a tutti.
sto provando a scrivere un programma che possa gestire grandi numeri, ossia al di la della portata delle normali variabili numeriche. Per farlo volevo dividere il numero in un array di stringhe ognuna delle quali contiene 5 cifre. Finora sono riuscito a creare una struttura chiamata Gnum (Grande numero) che divide il numero in due array: uno per la parte intera e uno per i decimali.
Mi spiego meglio:
creata la struttura
public struct Gnum { private static int x, y, sd, resto; private static string strnumD, smParz; private static string[] stra, straD, str1; private static Gnum somma; public Gnum(string strnum) { y = strnum.IndexOf(","); str1 = new string[2]; if (y != -1) { str1 = strnum.Split(','); strnum = str1[0]; strnumD = str1[1]; } else { strnumD = "0"; } while (Math.IEEERemainder((double)strnum.Length, 5) != 0) { strnum = strnum.Insert(0, "0"); } for (x = 5; strnum.Length > x; x += 6) { strnum = strnum.Insert(strnum.Length - x, "#"); } while (Math.IEEERemainder((double)strnumD.Length, 5) != 0) { strnumD = strnumD.Insert(strnumD.Length, "0"); } for (x = 5; strnumD.Length > x; x += 6) { strnumD = strnumD.Insert(strnumD.Length - x, "#"); } stra = new string[50]; stra = strnum.Split('#'); straD = new string[50]; straD = strnumD.Split('#'); this.Intero = stra; this.Decimali = straD; } public string[] Intero { get { return stra; } set { stra = value; } } public string[] Decimali { get { return straD; } set { straD = value; } } }
posso facilmente creare un grande numero così:
Gnum n1 = new Gnum(textBox1.Text);
il problema però e che non riesco a creare due grandi numeri distinti, infatti il seguente codice :
Gnum n1 = new Gnum(textBox1.Text); Gnum n2 = new Gnum(textBox2.Text);
crea si due grandi numeri, ma quando viene creato il secondo il primo si modifica da solo e diventa uguale al secondo.
Come posso fare per risolvere questo problema?
Grazie per l'attenzione e grazie in anticipo per l'aiuto!
Buona giornata a tutti.
Ultima modifica effettuata da Matthew 30/07/08 10:25
aaa