C#如果整数对于Int32太大,如何存储我的整数并对其进行数学运算

时间:2018-09-03 19:25:09

标签: c# math

我要专门转换数字

  

2293128329

在此代码行中

到Int32:

int nid = Convert.ToInt32(itemId);

及其返回的错误

picture_of_error

现在,我知道该数字对于Int32太大,因为最大值为2,147,483,647,而我的数字为2,293,128,329。有人对我如何解决此问题并继续进行数学运算有任何想法或解决方案吗?

3 个答案:

答案 0 :(得分:2)

尝试一下:

long nid = Convert.ToInt64(itemId);

您处理的数字溢出Int32范围。但是您可以使用很长的时间(或Int64,这是同一回事),然后继续进行数学计算。

答案 1 :(得分:-1)

您可以使用long代替int,也可以使用BigInteger(Java已知):https://archive.codeplex.com/?p=biginteger

答案 2 :(得分:-3)

问题是您的数量大于Int32可以存储的数量。

您必须使用Int64。并使用Int64代替int

Int64 nid = Convert.ToInt64(itemId);

请注意,Int64long是相同的。

另一种选择是使用unsigned Int32。那么Int32将不会存储负数,然后有足够的空间来存储更大的数字