math.sqrt的返回值

时间:2013-08-23 14:45:58

标签: c# function return math.sqrt

我一直试图绘制y ^ 2 = 4 * a * x的函数,但我遇到了一个问题。当我使用math.sqrt函数找到一个有两个答案的值的平方根时,我只得到正值。即如果我发现4的sqrt它将返回+2而不是+或-2。

任何帮助都将深表感谢。

4 个答案:

答案 0 :(得分:2)

您可以编写自己的方法来返回两个值:

public static IEnumerable<double> Sqrt(double d)
{
    var result = Math.Sqrt(d);
    yield return result;
    yield return -result;
}

答案 1 :(得分:1)

你也可以将答案乘以-1并得到两者。

答案 2 :(得分:0)

如果您阅读the doc(MSDN确实完整且制作精良,请在提问前使用它),您会看到参数为0或正数,Math.Sqrt仅返回“正面d的平方根。

如果你需要负值,你必须自己做,例如:

double value = 4;
double positiveSqrt = Math.Sqrt(value);
double negativeSqrt = positiveSqrt * -1;

答案 3 :(得分:0)

如果你真的想要一个能够返回正方根和负方根的函数,你可以很容易地编写自己的函数:

public static double[] Sqrts(double d) {
    var v = Math.Sqrt(d);
    return v == 0 ? new[] { v } : new[] { v, -v };
}