//计算平方根
public static double sqrt(double c) {
if (c < 0) return Double.NaN;
double err = 1e -15;
double t = c;
while (Math.abs(t - c/t) >err *t )
t = (c/t + t) /2.0;
return t;
}在这里面(1e -15),实在看不懂这个“le”是一个什么变量。试了好几个也不懂。还有while那段循环看不懂。望解答一下代码
2 回答
已采纳
精慕门9254224
TA贡献167条经验 获得超46个赞
1e-15是指数形式表达浮点数,代表10的-15次方是double类型的正数最小值,while 中math .abs 代表取绝对值,while 循环内部的代码就是开方的算法,不过浮点数计算会有小数溢出,一般精度不够,会丢失精度!
topband
TA贡献14条经验 获得超12个赞
1e -15;代表10的-15次方。
这个求平方根的算法为牛顿法。是常用的一种算法之一。
如果不专门学习算法的话,不需要去抠这些细节的。只需要知道,这是一个功能函数,作用是求平方根。
另外,如果对算法感兴趣,可以加入学校的acm社团,成为一个acmer,顺便膜拜下楼教主。
添加回答
举报
0/150
提交
取消