Ho un numero, ad esempio 1234567897865; come faccio a massimizzare e creare 99999999999999?Come ottenere il numero massimo di una lunghezza particolare
Ho fatto questo in questo modo:
int len = ItemNo.ToString().Length;
String maxNumString = "";
for (int i = 0; i < len; i++)
{
maxNumString += "9";
}
long maxNumber = long.Parse(maxNumString);
quale sarebbe il modo migliore, una corretta e più breve per affrontare questo compito?
BigInteger ha metodi comparabili se si supera 'lungo'. –
Questo non è corretto. A causa delle proprietà dell'aritmetica in virgola mobile quando 'x = 10^n'' log (x) 'può essere leggermente più piccolo di n. Quando ciò accade la tua funzione restituisce '10^n-1' invece di' 10^(n + 1) -1'. Ad esempio in aritmetica a doppia precisione x = 1000 dà 999 anziché 9999 perché 'log (1000) = 2.99999999999999955591e + 00'. –
ahhh .... pignolo! [ma corretto]. Ho risolto il problema con questo ... @adam, perché suggerire/fornire la correzione da soli ?? –