当前位置: 首页 > 面试题库 >

Java中BigDecimal的平方根

别锐
2023-03-14
问题内容

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


问题答案:
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位的数字非常快!



 类似资料:
  • 问题内容: 是否有Java中BigDecimal上的平方根库? 问题答案: JSciencev4.3.1的类似乎等效,并且可能会对您有所帮助。用法示例: 编辑 :更新了代码和链接以反映当时的当前版本(v4.3.1)。基于@ile和@Tomasz评论,谢谢。

  • 问题内容: 如何计算BigDecimal的对数?有谁知道我可以使用的任何算法? 到目前为止,我在谷歌搜索中提出了(无用的)想法,即仅转换为double并使用Math.log。 我将提供所需答案的精确度。 编辑:任何基地都可以。如果在base x中更简单,我会做。 问题答案: Java Number Cruncher:《 Java数值计算程序员指南》提供了使用牛顿方法的解决方案。这本书的源代码在这里

  • 问题内容: 我正在开发一个数学解析器,它能够评估String 。我正在使用ANTLR进行解析,并取得了良好的进展。现在,我跌倒Java类并思考:嘿,为什么不在这里考虑精度。 我的问题是Java API没有为s like 提供三角函数。您是否知道是否有诸如Apache Commons这样的好数学库可以解决此问题? 另一个问题是如何实现幂方法,以便我可以用s 计算4.9 ^ 1.4 。这可能吗? 关于

  • null 有更好的办法吗?

  • 编辑:整个计算很复杂,有很多类似这样的操作。我需要尽可能精确的结束。

  • 问题内容: 我必须计算一些浮点变量,而我的同事建议我使用而不是,因为这样会更精确。但是我想知道它是什么以及如何最大程度地利用它? 问题答案: 是表示数字的精确方法。A 具有一定的精度。由于幅值之差太大,求和时使用不同倍数(例如和)的双精度可能会导致它们一起下降。有了这不会发生。 的缺点是,它是较慢的,和它有点更难以程序算法的方式(由于不被过载)。 如果你要花钱,或必须精打细算,请使用。否则往往就足