算术运算导致溢出.(加整数)

bre*_*dog 25 c# vb.net overflowexception

我无法理解这个错误:

在对方法SetVolume的调用中,Volume = 2055786000,size = 93552000.Volume是Integer属性,size也是Integer,如您所见.

该类是dbml实体类的部分类,但是此Volume属性不是数据库中的列,它仅作为"业务对象属性"存在于部分类中.

查看详情显示:

Data> Item:为了评估索引属性,必须对该属性进行限定,并且必须由用户显式提供参数.

替代文字

可能导致这种情况......?

Bot*_*000 35

整数(有符号)的最大值是2147483647.如果该值溢出,则抛出异常以防止程序出现意外行为.

如果不抛出那个异常,你的价值就是-2145629296你的Volume,这很可能是不想要的.

解决方案:使用Int64您的音量.最大值9223372036854775807,您可能更安全.


Dar*_*rov 7

int.MaxValue = 2147483647
2055786000 + 93552000 = 2149338000 > int.MaxValue
Run Code Online (Sandbox Code Playgroud)

因此,您无法将此数字存储为整数.您可以使用Int64类型,其最大值为9,223,372,036,854,775,807.