math.sqrt的返回值

本文关键字:返回值 sqrt math | 更新日期: 2023-09-27 18:28:51

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

如有任何帮助,我们将不胜感激。

math.sqrt的返回值

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

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

您也可以将答案与-1相乘,然后两者都得到。

如果您阅读了文档(MSDN非常完整,制作精良,请在提问前使用它),您会发现参数为0或正时,Math.Sqrt仅返回"d的正平方根。"

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

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

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

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