Mam numer, na przykład 1234567897865; jak mam go zmaksymalizować i utworzyć 99999999999999?Jak uzyskać maksymalną liczbę określonej długości
Zrobiłem to w ten sposób:
int len = ItemNo.ToString().Length;
String maxNumString = "";
for (int i = 0; i < len; i++)
{
maxNumString += "9";
}
long maxNumber = long.Parse(maxNumString);
co byłoby lepiej, prawidłowe i krótszy sposób podejść do tego zadania?
BigInteger ma podobne metody, jeśli przerastasz 'long'. –
To jest nieprawidłowe. Ze względu na właściwości arytmetyki zmiennoprzecinkowej, gdy 'x = 10^n'' log (x) 'może być nieco mniejsze niż n. Kiedy tak się stanie twoja funkcja zwraca '10^n-1' zamiast' 10^(n + 1) -1'. Na przykład w arytmetyce podwójnej precyzji x = 1000 daje 999 zamiast 9999, ponieważ 'log (1000) = 2.99999999999999955591e + 00'. –
ahhh .... wybredny! [ale poprawne]. Naprawiłem to ... @adam, dlaczego po prostu zasugeruj/zapewnij sobie naprawę? –