-5

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

任何帮助将不胜感激。

4

4 回答 4

2

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

public static IEnumerable<double> Sqrt(double d)
{
    var result = Math.Sqrt(d);
    yield return result;
    yield return -result;
}
于 2013-08-23T14:52:19.857 回答
1

您也可以将答案与 -1 相乘并得到两者。

于 2013-08-23T14:52:24.913 回答
0

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

public static double[] Sqrts(double d) {
    var v = Math.Sqrt(d);
    return v == 0 ? new[] { v } : new[] { v, -v };
}
于 2013-08-23T14:52:42.860 回答
0

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

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

double value = 4;
double positiveSqrt = Math.Sqrt(value);
double negativeSqrt = positiveSqrt * -1;
于 2013-08-23T14:51:15.777 回答