2013-01-06 9 views
6

tentando di assegnare un numero a un BigInteger in C#errore quando si assegna un grande numero di BigInteger

BigInteger number= 27419669081321110693270343633073797; 

ma dimostra di errore:

costante integrale è troppo grande

Ho pensato che lo BigInteger sia grande quanto la mia RAM, quindi come posso spostare questo numero su BigInteger?

risposta

9

Penso che tu possa farlo con BigInteger.Parse(String). Senza sapere molto su C#, penso che la parte giusta del compito sia quella sbagliata. Il numero è troppo grande.

+0

Sì funziona, grazie –

+1

Sì, il numero è troppo grande per la conversione implicita tentato al 'tipo ulong' (' ulong.MaxValue = 18446744073709551615UL'). '27419669081321110693270343633073797' è una dichiarazione costante, di cui' BigInteger' non è un tipo valido (i tipi validi sono 'sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, bool, string ', un tipo enum o di riferimento). –

0

Ho controllato il mio VS e ho analizzato il successo. cercare di analizzare con questo metodo:

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

Il tipo BigInteger è un tipo immutabile che rappresenta un arbitrariamente grande numero intero il cui valore in teoria non ha limite superiore o inferiore.

Come per esempio Burkhard e Hank, è necessario utilizzare il metodo BigInteger.Parse() per questo.

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

Inoltre, non dimenticare;

Se si utilizza il metodo Parse() di andata e ritorno la rappresentazione di stringa di un valore BigInteger che era uscita dal metodo ToString, si dovrebbe utilizzare il metodo BigInteger.ToString(String) con il formato "R" identificatore per generare la rappresentazione in formato stringa del valore . In caso contrario, la rappresentazione in formato stringa BigInteger conserva solo le cifre più significative del valore originale, ei dati potrebbero andare persi quando si utilizza il metodo Parse per ripristinare il valore BigInteger.

Problemi correlati