一尘不染

Java中BigDecimal的平方根

java

我们是否可以BigDecimal仅使用Java API而不使用定制的100行算法来计算Java 中a的平方根?


阅读 5752

收藏
2020-03-19

共1个答案

一尘不染

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位的数字非常快!

2020-03-19