2

我有以下两种方法:

public int Average (params int[] array)
{
    if (array.Length > 0)
    { 
        double avg = Sum(ints) / arr.Length;        
        return (int)avg;             
    }        
    return 0;
} 

public int Sum(params int[] array2)
{
    int total = 0;
    for (int n = 0; n < array2.Length; n++)
    {
        total += arr[n];
    }
    return total;
}

但出于测试目的,我尝试在数组中添加int.MaxValue / 2and 。int.MaxValue / 2 + 4.但是为什么单元测试会失败,尽管这两个值的总和会小于int.MaxValue

4

1 回答 1

5

数组 [] 中的两个值:- int.MaxValue / 2 & int.MaxValue / 2 + 4 .. 但是当我运行单元测试时它失败了,尽管这两个值的总和将小于 int.maxvalues?

不,先生,总和将超过int.MaxValue

(int.MaxValue / 2) + (int.MaxValue / 2 + 4) == int.MaxValue + 4 //...

您超出了 int 最大值。

简单数学: (x/2)+ (x/2 +4) == x+4

于 2012-10-21T10:36:03.870 回答