我有一个这样的整数数组
int[] arr = {256741038,623958417,467905213,714532089,938071625};
然后我创建了一个 int64 变量
Int64 sum = arr.Sum();
但这导致了溢出
Run-time exception (line 19): Arithmetic operation resulted in an overflow.
不使用循环求和怎么解决这个问题? (数组类型必须是int)
最佳答案
问题在于,虽然单个值适合 int
,但这些数字结果的总和大于 int
可以容纳的值。
因此,您需要将值转换为 long
(或采用如此大数字的其他数据类型,但由于您使用的是 Int64...):
long sum = arr.Sum(v => (long)v);
关于c# - Array.Sum() 导致溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53075546/