java 中如何开方
开方方法
Java中开方可以通过Math.sqrt()方法实现,该方法接收一个double类型的参数并返回其平方根,结果也是double类型。如果需要更高精度的计算,可以使用MathContext和BigDecimal。
基本语法:
double result = Math.sqrt(number);
示例代码
计算整数的平方根:
int num = 16;
double squareRoot = Math.sqrt(num);
System.out.println("平方根: " + squareRoot); // 输出: 4.0
计算浮点数的平方根:
double num = 20.25;
double squareRoot = Math.sqrt(num);
System.out.println("平方根: " + squareRoot); // 输出: 4.5
高精度开方
对于需要高精度计算的场景,可以使用BigDecimal和牛顿迭代法:

import java.math.BigDecimal;
import java.math.MathContext;
public static BigDecimal sqrt(BigDecimal num, MathContext mc) {
BigDecimal guess = num.divide(BigDecimal.valueOf(2), mc);
BigDecimal prevGuess;
do {
prevGuess = guess;
guess = num.divide(guess, mc).add(guess).divide(BigDecimal.valueOf(2), mc);
} while (guess.compareTo(prevGuess) != 0);
return guess;
}
// 使用示例
BigDecimal number = new BigDecimal("2");
MathContext mc = new MathContext(100); // 设置精度
BigDecimal squareRoot = sqrt(number, mc);
System.out.println("高精度平方根: " + squareRoot);
注意事项
Math.sqrt()的参数为负数时会返回NaN(Not a Number)。- 高精度计算可能会消耗更多资源,需根据实际需求选择合适的方法。
- 对于整数开方,若需整数结果,可以强制转换为
int或long。






