c# - Array.Sum() 导致溢出

标签 c# arrays sum int overflow

我有一个这样的整数数组

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/

相关文章:

C++无限和代码挂了?冷冻?我不知道

javascript - 在javascript中将对象添加到复杂的json中

arrays - 用 Swift 修改数组中的对象?

r - 将字符串转换为一位数字并求和

c# - 程序集名称和版本

ios - 使用数组数据更新 TableView

sql - Mysql - 改进 'group by'中的咨询查询

C# 等效于 Java 'implements' 关键字?

c# - EF Core 类型配置添加了冗余 FK

c# - 如何从 IntPtr 获取二进制图像数据(看起来像 multipart/form-data)