jjzjj

overflowexception

全部标签

c# - Decimal.Round() 如何抛出 OverflowException

我在用Decimal.Round(decimald)MSDN说它可以抛出OverflowExceptionhttps://msdn.microsoft.com/en-us/library/k4e2bye2(v=vs.110).aspx我不确定这是怎么发生的。我尝试使用ilSpy查看实现并得到直到外部实现://decimal[SecurityCritical][MethodImpl(MethodImplOptions.InternalCall)]privatestaticexternvoidFCallRound(refdecimald,intdecimals);有人知道什么输入可以抛出这

c# - Enumerable.Average 和 OverflowException

也许是一个无用的问题:publicstaticdoubleAverage(thisIEnumerablesource,Funcselector)上述方法抛出的异常之一也是OverflowException:序列中元素的总和大于Int64.MaxValue。我假设此异常的原因是平均值的总和是使用long类型的变量S计算的?但是既然返回值是double类型,为什么设计者不选择让S也是double类型呢?谢谢 最佳答案 因为这个特定的重载知道您开始使用int值,所以它知道您没有使用十进制值。将您的每个值转换为double然后将double

c# - 在没有 OverflowException 的情况下将 "1.79769313486232E+308"转换为 double?

我有这个字符串“1.79769313486232E+308”,我试图将它转换为.NET数值(double?),但出现以下异常。我正在使用Convert.ToDouble()。进行此转换的正确方法是什么?OverflowException:ValuewaseithertoolargeortoosmallforaDouble 最佳答案 不幸的是这个值大于double.MaxValue,因此异常。正如codekaizen所建议的,您可以对字符串的测试进行硬编码。如果您首先生成字符串,则更好的(IMO)替代方法是使用“r”格式说明符。然后您

c# - 被 OverflowException 击中

在下面最后一行的方法中,我总是遇到异常:System.OverflowException:ValuewaseithertoolargeortoosmallforanInt32.我真的无法解释原因,因为我正在明确检查:privateInt32ConvertValue(doublevalue){if(value>Int32.MaxValue){Console.WriteLine("Couldn'tconvertvalue"+value+"toInt32");returnInt32.MaxValue;}elseif(value 最佳答案

c# - 从 double 转换为 int 的最佳(最安全)方法

我很好奇将double转换为整数的最佳方法。运行时安全是我在这里的主要关注点(它不一定是最快的方法,但这是我的次要关注点)。我在下面留下了一些我可以想出的选项。任何人都可以权衡哪种是最佳实践吗?有没有我没有列出的更好的方法来完成这个?doublefoo=1;intbar;//Option1boolparsed=Int32.TryParse(foo.ToString(),outbar);if(parsed){//...}//Option2bar=Convert.ToInt32(foo);//Option3if(fooInt32.MinValue){bar=(Int32)foo;}

python - Python 异常中错误编号的含义

在一些愚蠢的计算之后捕获Python的OverflowError,我检查了错误的args并看到它是一个包含整数作为其第一个坐标的元组。我假设这是某种错误编号(errno)。但是,我找不到它的任何文档或引用。例子:try:1e4**100exceptOverflowErrorasofe:printofe.args##prints'(34,'Numericalresultoutofrange')'您知道34在此上下文中的含义吗?您知道此异常的其他可能错误编号吗? 最佳答案 标准库中有一个模块叫做errno:Thismodulemakes

c# - 为什么编译器评估余数 MinValue % -1 与运行时不同?

我认为这看起来像是C#编译器中的错误。考虑这段代码(在一个方法中):constlongdividend=long.MinValue;constlongdivisor=-1L;Console.WriteLine(dividend%divisor);它编译时没有错误(或警告)。似乎是一个错误。运行时,在控制台上打印0。然后在没有const的情况下,代码:longdividend=long.MinValue;longdivisor=-1L;Console.WriteLine(dividend%divisor);运行时,它会正确地导致抛出OverflowException。C#Language

c# - 为什么编译器评估余数 MinValue % -1 与运行时不同?

我认为这看起来像是C#编译器中的错误。考虑这段代码(在一个方法中):constlongdividend=long.MinValue;constlongdivisor=-1L;Console.WriteLine(dividend%divisor);它编译时没有错误(或警告)。似乎是一个错误。运行时,在控制台上打印0。然后在没有const的情况下,代码:longdividend=long.MinValue;longdivisor=-1L;Console.WriteLine(dividend%divisor);运行时,它会正确地导致抛出OverflowException。C#Language

android - 多个R.java中的冗余资源引用导致Dax Index OverflowException

我有多个库项目,它们都依赖于支持库。我的应用程序依赖于这些多个库项目。每个库项目都在其R.java文件中包含支持库资源的引用。由于冗余,这会增加字段ID计数。我的应用获得了DexIndexOverflowException:fieldIDnotin[0,0xffff]:65536因为这个冗余的R.java引用。因此,我的应用程序有47k个方法和65k个字段ID。编辑:我不会使用multi-dex,它不能解决我的问题。我想去除多余的字段ID。问题不在于如何解决该问题,而在于如何摆脱冗余字段ID。使用multi-dex不会删除多余的字段ID。 最佳答案

c# - 为什么将 int.MinValue 除以 -1 在未经检查的上下文中抛出 OverflowException?

inty=-2147483648;intz=unchecked(y/-1);第二行导致OverflowException。unchecked不应该阻止这种情况吗?例如:inty=-2147483648;intz=unchecked(y*2);不会导致异常。 最佳答案 这不是C#编译器或抖动可以控制的异常。它特定于Intel/AMD处理器,当IDIV指令失败时,CPU会生成#DE陷阱(除法错误)。操作系统处理处理器陷阱并将其反射(reflect)回带有STATUS_INTEGER_OVERFLOW异常的进程。CLR尽职尽责地将其转换为
12