我要专门转换数字
在此代码行中2293128329
到Int32:
int nid = Convert.ToInt32(itemId);
及其返回的错误
现在,我知道该数字对于Int32太大,因为最大值为2,147,483,647
,而我的数字为2,293,128,329
。有人对我如何解决此问题并继续进行数学运算有任何想法或解决方案吗?
答案 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);
请注意,Int64
和long
是相同的。
另一种选择是使用unsigned Int32
。那么Int32将不会存储负数,然后有足够的空间来存储更大的数字