나는 확률로 작업하며 값의 합이 1인지 확인해야합니다. 단위 테스트를 작성하고 테스트 중 하나가 실패했습니다. 0.4 + 0.3 + 0.2 + 0.1 = 1
:숫자의 합을 1과 같게 만드는 방법
double[] probabilities = new[] { 0.4, 0.3, 0.2, 0.1 };
double sum = probabilities.Sum();
//On my PC gives sum of 0.99999999999999989
if (sum != 1)
{
throw new ArgumentException(
"Sum of the probabilities does not equal to 1. " +
"Computed value was: " + sum);
}
어떻게 변경할 수는이 사실을 만들기 위해 : 그것은 실패 된 이유는 무엇입니까?
'if (sum! = 1.0)' –
또 다른 방법은 int를 사용하는 것입니다. 확률에 100을 곱하십시오 (0.4 -> 40). 그런 다음 당신은'sum! = 100'을 확인할 수 있습니다 –
@razbakov 확률은 일반적으로 [0,1]의 값으로 사용되므로 int를 사용할 수 없습니다. – oleksii