49得票3回答
为什么在未经检查的情况下,将int.MinValue除以-1会引发OverflowException?

int y = -2147483648; int z = unchecked(y / -1); 第二行代码会抛出一个OverflowException异常。使用unchecked关键字不应该可以预防这种情况吗? 例如:int y = -2147483648; int z = unchecke...

32得票8回答
算术运算导致溢出。(整数相加)

我无法理解这个错误: 在调用SetVolume方法时,Volume = 2055786000,size = 93552000。您可以看到,Volume是一个整数属性,而size也是整数。 该类是dbml实体类的部分类,但是这个Volume属性不是数据库中的列,它只存在于部分类中作为“业务对...

22得票2回答
为什么编译器在计算 MinValue % -1 的余数时与运行时不同?

我认为这似乎是C#编译器的一个错误。 请考虑以下代码(在一个方法内):const long dividend = long.MinValue; const long divisor = -1L; Console.WriteLine(dividend % divisor); 它编译没有错误(或...

11得票2回答
Oracle数字到C#十进制的转换

我知道互联网上有很多关于这个问题的帖子和文章,并且我已经阅读了它们(我必须承认并不是每篇都看了),但没有一个完全满足我的要求。 我的情况: 我正在使用ODP.net(dll版本为2.111.6.0)访问Oracle DB(版本为10 + 11),并使用DataReader检索数据(.NET ...

11得票11回答
如何在不引发OverflowException的情况下将无符号整数转换为有符号整数

我希望能够将一个高位无符号整数(即使用最高位的值)转换为有符号整数。在这种情况下,我并不在意该值是否高于有符号整数类型的最大值。我只想将其转换为位值表示的有符号整数。换句话说,我希望它能得到一个负数。 然而,在VB.NET中,CType操作不是这样工作的(也包括其他转换函数,如CShort和...

11得票1回答
如何使Decimal.Round()抛出OverflowException异常

我正在使用Decimal.Round(decimal d) MSDN说它可能会抛出OverflowException https://msdn.microsoft.com/en-us/library/k4e2bye2(v=vs.110).aspx 我不确定那是怎么发生的。我试着用ilSpy查...

8得票1回答
Python 异常中错误编号的含义

在一次愚蠢的计算中捕获Python的OverflowError后,我查看了错误的args,发现它是一个包含整数作为第一个坐标的元组。我认为这是某种错误编号(errno)。然而,我找不到任何文档或参考资料。 示例: try: 1e4**100 except OverflowError...

7得票1回答
IntPtr.ToInt32()和x64系统

在我的C# DLL中,我有一些类似以下代码与一些非托管的DLL进行交互: IntPtr buffer = ...; TTPOLYGONHEADER header = (TTPOLYGONHEADER)Marshal.PtrToStructure( ...