
本文详解如何在java中正确计算三个数字的平均值,重点纠正常见的运算符优先级错误和整数除法陷阱,并提供支持小数结果的健壮实现方案。
本文详解如何在java中正确计算三个数字的平均值,重点纠正常见的运算符优先级错误和整数除法陷阱,并提供支持小数结果的健壮实现方案。
在Java中计算三个数 A、B、C 的平均值看似简单,但初学者常因忽略运算符优先级和数据类型隐式转换规则而得到错误结果。核心公式是:
平均值 = (A + B + C) ÷ 3
然而,若直接写成 int avg = a + b + c / 3;,Java 会按优先级先执行 c / 3(整数除法),再与 a + b 相加,等价于 a + b + (c / 3),并非真正的三数平均值。
✅ 正确写法需用括号强制先求和:
立即学习“Java免费学习笔记(深入)”;
int sum = a + b + c; int avgInt = sum / 3; // 整数平均值(向零截断)
⚠️ 但注意:int / int 结果仍为 int,会丢失小数部分。例如输入 4, 2, 1 时,(4+2+1)/3 = 7/3 = 2(而非 2.333...)。
? 若要获得精确的浮点平均值,必须让除法运算至少一方为浮点类型:
double avg = (a + b + c) / 3.0; // 推荐:3.0 是 double 类型,触发浮点运算 // 或显式转换 double avg2 = (double)(a + b + c) / 3;
完整可运行示例:
import java.util.Scanner;
public class AverageCalculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入三个整数(空格分隔):");
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
// ✅ 正确整数平均值(仅当结果必为整数时使用)
int avgInt = (a + b + c) / 3;
// ✅ 推荐:浮点平均值,保留精度
double avgDouble = (a + b + c) / 3.0;
System.out.println("整数平均值:" + avgInt);
System.out.printf("浮点平均值:%.2f%n", avgDouble); // 格式化输出,保留两位小数
}
}? 关键总结:
- 永远用括号
(a + b + c)明确求和优先级; - 避免
int / int计算平均值,除非明确接受截断; - 使用
3.0、3d或类型转换确保浮点除法; - 对用户输出建议用
printf控制小数位数,提升可读性。


















