java中如何对一个数开根号

2024-12-29 22:16:17
推荐回答(3个)
回答1:

java 中对一个数开根号可以使用系统提供的 Math.sqrt() 函数进行操作

例:

Math.sqrt(3); // 得到结果就是3

回答2:

java实现开根号的运算:
public static void main(String[] args) { long start = System.currentTimeMillis(); double target=9876543212345d; double result =sqrt(target);
System.out.println("sqrt耗时:"+(System.currentTimeMillis()-start)+",result:"+result);

start=System.currentTimeMillis();
result =SqrtByBisection(target, 0);
System.out.println("SqrtByBisection耗时:"+(System.currentTimeMillis()-start)+",result:"+result);

start=System.currentTimeMillis();
result = SqrtByNewton(target, 0);
System.out.println("SqrtByNewton耗时:"+(System.currentTimeMillis()-start)+",result:"+result);

}
//牛顿迭代法
public static double SqrtByNewton(double target,double eps){ double Xa=target,Xb; do {
Xb = Xa;
Xa = (Xa+target/Xa)/2;
} while (fabsf(Xa,Xb)>eps); return Xa;
} //二分法 精度是指两次mid值的差值
public static double SqrtByBisection(double target,double eps){ double min=1,max=target; double mid =(min+max)/2; double anMid; do { if(mid*mid>target){
max=mid;
}else{
min=mid;
}
anMid=mid;
mid=(max+min)/2;
} while (fabsf(anMid,mid)>eps); return mid;
}

public static double sqrt(double d){ double a = 0.1; double x1,x2=0; while (a*a<=d) {
a+=0.1;
}
x1=a; for (int i = 0; i < 10; i++) {
x2=d;
x2/=x1;//x2 = x2/x1;
x2+=x1;
x2/=2;
x1=x2;
} return x2;
}
public static double fabsf(double a,double b){ if(a>b){ return a-b;
}else
return b-a;
}

回答3:

Math.sqrt(4);
4就是你要开方的值