Diğer insanlar söylediler numaralı gerçekten son derece büyük olmadığı sürece, daha büyük bir dizi var, diğer türleri TryParse
yöntemini kullanabilirsiniz rağmen, siz, int.TryParse
yöntemini kullanabilirsiniz int32 en fazla. (Tabii ve noktalama işaretleri önlemek için, NumberStyles.None
seçeneği kullanılarak) dönüştürülmüştür.
Burada kırılma aşağı bulunuyor:
int
-2,147,483,648 .. 2,147,483,647
uint
0 .. 4,294,967,295
long
-9.223.372.036.854.775.808 .. 9.223.372.036.854.775.807
ulong
0 .. 18.446.744.073.709.551.615
float
-3.402823E38 .. 3.402823E38
double
-1.79769313486232e308 .. 1.79769313486232e308
decimal
-79228162514264337593543950335 .. 79228162514264337593543950335
Büyük numaralarını ayrıştırmak biridir Double
. Eğer numarasını kullanmak gerekiyorsa, bazı hassasiyet kaybedersiniz, ama (sen bir sorun olmamalı bu yüzden bunu kullanmaya gerek yok demek rağmen) gerçekten uzun numaralarını ayrıştırmak. Ben yaptım hızlı bir testte, başarıyla aşağıdaki dizeyi ayrıştırmak başardı:
79228162514264337593543950335792281625142643375935439503357922816251426433759354395033579228162514264337593543950335792281625142643375935439503357922816251426433759354395033579228162514264337593543950335792281625142643375935439503357922816251426433759354395033579228162514264337593543950335234234234234243423
(308 karakter şu, bir daha sayı ile başarısız olur)
Eğer numarayı kullanmak için gidiş değildir Yine de, eğer, bu yüzden Regex için gitmek, hatta daha iyi, her karakteri bir rakam olduğunu kontrol döngü olur, bir overkill olabilir.
Eğer istedğim biraz deli giderseniz birkaç küçük dizeleri içine bölünmüş ve paralel bir şekilde kontrol etmek Görev kütüphane kullanabilirsiniz: P
(Ben şimdi biraz offtopic biliyorum, ama bunu yapmak istediğiniz takdirde, bu C9 10dk klibi check out, parallel.for
ve Partition Ranger
kontrol etmelisiniz: {[(2) ]})