首页 新闻 会员 周边 捐助

C# System.OverflowException:“值对于 Int32 太大或太小

0
悬赏园豆:5 [已解决问题] 解决于 2022-12-19 09:22

代码如下:
string MATC02 = dt.Rows[0][0].ToString().Trim();//得出最大值,如果是空就是0000
int IA = int.Parse(MATC02) + 10001;//把最大值转换成数字 再加 10001
MATC02="2212170001"
int.Parse(MATC02) 居然提示报错 C# System.OverflowException:“值对于 Int32 太大或太小 ,想不通,这么小的值,转换会报错, 请大神指点,谢谢。

C#
郑英灿的主页 郑英灿 | 初学一级 | 园豆:156
提问于:2022-12-17 10:56
< >
分享
最佳答案
0

int32-数值范围:-2,147,483,648 到 2,147,483,647
你这个数超出int32的取值范围了,如果没有负值的话,可以用uint a = uint.Parse(MATC02); 或者用更大取值范围的类型,比如:long 类型。

收获园豆:5
中华鲟3670 | 小虾三级 |园豆:910 | 2022-12-17 12:12
其他回答(2)
0

建议在 string MATC02 = dt.Rows[0][0].ToString().Trim(); 之后打印一下 MATC02 的值,可能出现了非正常值

dudu | 园豆:31030 (高人七级) | 2022-12-17 11:00


这样子也不行,奇怪

支持(0) 反对(0) 郑英灿 | 园豆:156 (初学一级) | 2022-12-17 11:02

@郑英灿: int 类型支持的最大值是 21474836472212170001-2147483647=64686354

支持(0) 反对(0) dudu | 园豆:31030 (高人七级) | 2022-12-17 12:21
0

建议用long

何生有二十六画 | 园豆:141 (初学一级) | 2022-12-28 15:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册