当前位置:首页 > Java

java如何求平方根

2026-02-05 15:15:50Java

使用 Math.sqrt() 方法

Java 内置的 Math.sqrt() 方法可以直接计算平方根,返回结果为 double 类型。适用于大多数简单场景。

double number = 25;
double sqrt = Math.sqrt(number); // 结果为 5.0

使用牛顿迭代法

牛顿迭代法是一种手动实现平方根计算的数值方法,适合需要自定义精度或理解算法原理的场景。

public static double sqrtNewton(double number, double precision) {
    double guess = number;
    while (Math.abs(guess * guess - number) > precision) {
        guess = (guess + number / guess) / 2;
    }
    return guess;
}

// 示例调用
double sqrt = sqrtNewton(25, 0.0001); // 结果接近 5.0

使用 Apache Commons Math 库

对于复杂数学运算,可以引入 Apache Commons Math 库的 FastMath.sqrt() 方法,优化了性能。

import org.apache.commons.math3.util.FastMath;

double sqrt = FastMath.sqrt(25); // 结果为 5.0

处理负数和大数

Math.sqrt() 对负数会返回 NaN,需额外处理。大数运算可使用 BigDecimal 提高精度。

double number = -25;
double sqrt = (number < 0) ? Double.NaN : Math.sqrt(number);

// BigDecimal 示例
import java.math.BigDecimal;
import java.math.MathContext;

BigDecimal num = new BigDecimal("25");
BigDecimal sqrt = num.sqrt(new MathContext(10)); // 精度为10位

性能优化场景

若需频繁计算整数平方根且范围有限,可预计算并缓存结果到查找表中,以空间换时间。

java如何求平方根

标签: 平方根何求
分享给朋友:

相关文章

如何求随机数java

如何求随机数java

生成随机数的方法 在Java中,生成随机数可以通过多种方式实现,以下是几种常见的方法: 使用Math.random() Math.random()方法返回一个double类型的伪随机数,范围在[0…