/// <summary>
/// 开平方根(牛顿迭代法)
/// </summary>
/// <param name="c"></param>
/// <returns></returns>
public static decimal Sqrt(decimal c)
{
if (c < 0)
{
return decimal.MinValue;
}
decimal e = 1e-50m;
decimal x = c;
decimal y = (x + c / x) / 2;
while (Math.Abs(x - y) > e)
{
x = y;
y = (x + c / x) / 2;
}
return x;
}
参考:
百度百科-牛顿迭代法