猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
Java中BigDecimal的平方根
我们可以
BigDecimal
仅使用Java API而不使用定制的100行算法来计算Java 中a的平方根吗?
猛跑小猪
浏览 3385
回答 3
3回答
不负相思意
通过使用Karp的技巧,可以仅在两行中实现无循环,从而提供32位精度:public static BigDecimal sqrt(BigDecimal value) { BigDecimal x = new BigDecimal(Math.sqrt(value.doubleValue())); return x.add(new BigDecimal(value.subtract(x.multiply(x)).doubleValue() / (x.doubleValue() * 2.0)));}
1
0
0
暮色呼如
public static BigDecimal sqrt(BigDecimal A, final int SCALE) { BigDecimal x0 = new BigDecimal("0"); BigDecimal x1 = new BigDecimal(Math.sqrt(A.doubleValue())); while (!x0.equals(x1)) { x0 = x1; x1 = A.divide(x0, SCALE, ROUND_HALF_UP); x1 = x1.add(x0); x1 = x1.divide(TWO, SCALE, ROUND_HALF_UP); } return x1;}这项工作完美!超过65536位的数字非常快!
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续