我一直试图绘制y ^ 2 = 4 * a * x的函数,但我遇到了一个问题。当我使用math.sqrt函数找到一个有两个答案的值的平方根时,我只得到正值。即如果我发现4的sqrt它将返回+2而不是+或-2。
任何帮助都将深表感谢。
答案 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 };
}