Java-添加多个long上溢/下溢检查

时间:2018-12-16 21:57:28

标签: java overflow underflow

这里有个'e',它是一个数组数组。

e[i].val()返回一个长值(正数或负数)。

我的目标是将所有这些值加起来并返回平均值。

问题在于总数可能溢出或下溢,从而导致计算错误。

如果总计确实在添加结束时达到Long.MAX_VALUELong.MIN_VALUE,则总计应保持在Long.MAX_VALUELong.MIN_VALUE

那么平均值就是Long.MAX_VALUELong.MIN_VALUE / e.length

只能使用基本Java,唯一可能的例外是Integer / Long.MIN / MAX_VALUE。

long total = 0;
for(int i = 0; i < e.length; ++i) {
    total = e[i].val();
}
mean = total/e.length.

0 个答案:

没有答案