牛顿迭代法,快速求平方根的方法之一。
代码:
public static double sqrt(double c) {
if(c<0)
return Double.NaN; //NaN 非数字
double err=1e-15; //0.000..0(15个0)1 表示俩值无限接近
double t=c;
while(Math.abs(t - c / t ) > err * t) //可以转化为1 - c / t*t > err t的值无限接近于c
t = ( t + c / t ) / 2.0; //t的值无限接近于c,则c / t = t ,( t + t )/2 = t;
return t;
}