我一直在尝试绘制 y^2=4*a*x 的函数,但遇到了问题。当我使用 math.sqrt 函数查找具有两个答案 + 或 - 的值的平方根时,我只得到正值。即,如果我找到 4 的 sqrt,它将返回 +2 而不是 + 或 -2。
任何帮助将不胜感激。
您可以编写自己的方法来返回这两个值:
public static IEnumerable<double> Sqrt(double d)
{
var result = Math.Sqrt(d);
yield return result;
yield return -result;
}
您也可以将答案与 -1 相乘并得到两者。
如果你真的想要一个返回正平方根和负平方根的函数,你可以很容易地编写自己的函数:
public static double[] Sqrts(double d) {
var v = Math.Sqrt(d);
return v == 0 ? new[] { v } : new[] { v, -v };
}
如果您阅读文档(MSDN 非常完整且制作精良,请在提问前使用它)您会看到参数为 0 或正数时,Math.Sqrt
仅返回“ d 的正平方根” 。
如果你需要负值,你必须自己做,例如这样:
double value = 4;
double positiveSqrt = Math.Sqrt(value);
double negativeSqrt = positiveSqrt * -1;