1

我收到一个异常说“算术运算导致溢出”,但我不知道为什么。

我正在尝试进行以下计算

我的值 = 2 * 11 * 37 * 41 * 41 * 41 * 41

等于 2,300,169,454。我已经将 myvalue 变量声明为 Long,并且还尝试了 Int64,所以这应该在范围内。抛出此异常还有其他原因吗?

谢谢

4

2 回答 2

4

您已将赋值的目标声明为long,但看起来您正在操作中执行int算术运算。当所有算术都完成时int,它确实会溢出。如果您需要以 64 位执行算术运算,则您需要操作数是long值 - 或者至少是其中的一些。(如果没有看到您的真实代码,很难确切地说出在哪里进行更改。)

于 2012-11-28T22:58:03.570 回答
1

当您收到该错误时,您使用的所有值都是int值(或更小)。

如果只long在计算中使用一个值,则结果是一个long值并且没有溢出:

long myvalue = 2 * 11 * 37 * 41 * 41L * 41 * 41;
于 2012-11-28T23:11:32.240 回答