我有以下两种方法:
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 / 2
和int.MaxValue / 2 + 4.
。但是为什么单元测试失败,尽管两个值的总和将小于int.MaxValue
?
答案 0 :(得分:5)
数组[]中的两个值: - int.MaxValue / 2&amp; int.MaxValue / 2 + 4 ..但是当我运行单元测试时它失败了,虽然这两个值的总和将小于int.maxvalues?
不,先生,总和将超过int.MaxValue
:
(int.MaxValue / 2) + (int.MaxValue / 2 + 4) == int.MaxValue + 4 //...
你超越了int max值。
简单数学:(x / 2)+(x / 2 +4)== x + 4