Java中如何正确使用sqr函数实现平方计算?
- 后端开发
- 2025-05-28
- 6
在Java中没有内置的sqr方法,但开发者通常通过以下方式实现“平方”或“平方根”功能,以下是详细的使用场景和解决方案:
平方计算
若需计算某个数的平方(即数值的二次方),可用以下方法:
直接乘法
最简单的方式是直接相乘:
int num = 5; int square = num * num; // 结果为25
使用 Math.pow() 方法
Java的Math类提供pow()方法,用于计算幂次方:
double base = 4.0; double square = Math.pow(base, 2); // 结果为16.0
自定义sqr方法
可封装一个自定义方法:


public static int sqr(int x) { return x * x; } public static double sqr(double x) { return x * x; }
平方根计算
若需求是平方根(√x),则使用Math.sqrt()方法:
double number = 25.0; double sqrtResult = Math.sqrt(number); // 结果为5.0
注意:Math.sqrt()的参数必须为非负数,否则返回NaN(如Math.sqrt(-1))。
第三方库的sqr方法
某些第三方数学库(如Apache Commons Math)可能提供sqr方法:

import org.apache.commons.math3.util.FastMath; double value = 3.0; double squared = FastMath.pow(value, 2); // 结果为9.0
常见问题及解决
-
整数溢出
计算大整数的平方时可能超出int或long范围:
int a = 1000000; int result = a * a; // 错误:结果为-727379968(溢出)
解决方案:使用long或BigInteger类型。
-
负数处理
Math.sqrt()对负数返回NaN,需预先判断:
double input = -5; if (input >= 0) { double sqrt = Math.sqrt(input); } else { System.out.println("输入不能为负数"); } - Java Math类文档:Oracle官方文档
- Apache Commons Math库:官方文档
代码示例汇总
public class SquareExample { public static void main(String[] args) { // 计算平方 int num1 = 8; int square1 = num1 * num1; // 64 double num2 = 2.5; double square2 = Math.pow(num2, 2); // 6.25 // 计算平方根 double num3 = 49.0; double sqrt = Math.sqrt(num3); // 7.0 // 自定义sqr方法 System.out.println(sqr(10)); // 输出100 } public static int sqr(int x) { return x * x; } }
引用说明