2013-01-06 16 views
6

Cố gắng gán một số lượng lớn để một BigInteger trong C#Lỗi khi giao số lượng lớn để BigInteger

BigInteger number= 27419669081321110693270343633073797; 

nhưng nó cho thấy lỗi:

liên tục Integral quá lớn

Tôi nghĩ rằng BigInteger lớn bằng RAM của tôi nên làm cách nào tôi có thể di chuyển số này tới BigInteger?

Trả lời

9

Tôi nghĩ bạn có thể làm điều đó với BigInteger.Parse(String). Không biết nhiều về C#, tôi nghĩ phần đúng của nhiệm vụ là sai. Số lượng quá lớn.

+0

Vâng, hoạt động, cảm ơn –

+1

Có, số quá lớn cho chuyển đổi ẩn tiềm ẩn thành loại 'ulong' (' ulong.MaxValue = 18446744073709551615UL'). '27419669081321110693270343633073797' là khai báo liên tục, trong đó' BigInteger' không phải là loại hợp lệ (các kiểu hợp lệ là 'sbyte, byte, ngắn, ushort, int, uint, long, ulong, char, float, double, decimal, bool, string ', kiểu enum hoặc kiểu tham chiếu). –

0

Tôi đã kiểm tra VS và phân tích thành công của mình. Cố gắng phân tích bằng phương pháp này:

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

Loại BigInteger là một loại hình bất biến đại diện cho một số nguyên tùy tiện lớn có giá trị về mặt lý thuyết không có giới hạn trên hoặc dưới.

Giống như BurkhardHank nói, bạn nên sử dụng phương pháp BigInteger.Parse() cho việc này.

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

Cũng đừng quên;

Nếu bạn sử dụng phương pháp Parse() để khứ hồi chuỗi đại diện của một giá trị BigInteger đó là đầu ra theo phương pháp ToString, bạn nên sử dụng phương pháp BigInteger.ToString(String) với định dạng "R" specifier để tạo ra đại diện chuỗi của giá trị BigInteger . Nếu không, biểu diễn chuỗi của BigInteger chỉ giữ lại các số quan trọng nhất của giá trị ban đầu, và dữ liệu có thể bị mất khi bạn sử dụng phương pháp Phân tích cú pháp để khôi phục giá trị BigInteger.

Các vấn đề liên quan