我收到一个异常说“算术运算导致溢出”,但我不知道为什么。算术运算导致溢出 - int64范围内的结果
我试图做下列计算
myvalue的= 2 * 11 * 37 * 41 * 41 * 41 * 41
其等于2300169454。我已经声明了myvalue变量为Long,并且也尝试了Int64,所以这应该在范围内。有什么其他原因导致这个异常?
感谢
我收到一个异常说“算术运算导致溢出”,但我不知道为什么。算术运算导致溢出 - int64范围内的结果
我试图做下列计算
myvalue的= 2 * 11 * 37 * 41 * 41 * 41 * 41
其等于2300169454。我已经声明了myvalue变量为Long,并且也尝试了Int64,所以这应该在范围内。有什么其他原因导致这个异常?
感谢
你已经宣布分配作为long
的目标,但它看起来像你在执行操作中int
算术。当所有算术完成为int
时,它确实是溢出。如果您需要以64位执行算术运算,则需要操作数为long
值 - 或者至少其中一些值。 (很难说如果没有看到真实的代码,到底在哪里改变东西。)
当你得到那个错误时,你使用的所有值都是int
值(或更小)。
如果只是用在计算一个long
值,结果是long
值并没有溢出:
long myvalue = 2 * 11 * 37 * 41 * 41L * 41 * 41;
谢谢!这正是问题,操作数被声明为int。欣赏快速的答案,另一个.net的教训! –