上一篇
如何在Java中相加两个数字?
- 后端开发
- 2025-06-06
- 2266
在Java中实现两个数相加,可通过定义变量存储数值,使用
+运算符计算和,最后用
System.out.println()输出结果,示例代码:
int a=5, b=3; System.out.println(a+b); 输出结果为8。
基础整数相加
适用于固定数值的简单计算:
public class BasicAddition {
public static void main(String[] args) {
int num1 = 15; // 定义第一个整数
int num2 = 27; // 定义第二个整数
int sum = num1 + num2; // 相加
System.out.println("结果:" + sum); // 输出:42
}
}
关键点:
int类型最大支持2147483647,超出会导致溢出(如2147483647 + 1 = -2147483648)- 需更高范围时用
long(最大9223372036854775807)
用户输入交互相加
通过 Scanner 实现动态输入:

import java.util.Scanner; // 导入输入工具
public class UserInputAddition {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建扫描器对象
System.out.print("输入第一个数:");
double firstNum = scanner.nextDouble(); // 读取浮点数
System.out.print("输入第二个数:");
double secondNum = scanner.nextDouble();
double result = firstNum + secondNum;
System.out.printf("和 = %.2f", result); // 保留两位小数输出
scanner.close(); // 释放资源
}
}
执行示例:
输入第一个数:3.5
输入第二个数:7.2
和 = 10.70
浮点数精确计算
解决 float/double 精度丢失问题(如 1 + 0.2 ≠ 0.3):
import java.math.BigDecimal;
public class PreciseAddition {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
BigDecimal sum = a.add(b); // 精确加法
System.out.println(sum); // 输出 0.3
}
}
为什么用 BigDecimal:

double采用二进制浮点运算,存在舍入误差- 金额、科学计算等场景必须使用
BigDecimal
方法封装复用
将加法逻辑提取为独立方法:
public class MethodAddition {
public static void main(String[] args) {
System.out.println("整数相加:" + add(5, 8)); // 调用整数方法
System.out.println("浮点数相加:" + add(3.7, 2.4)); // 调用浮点方法
}
// 重载方法:整数版本
public static int add(int a, int b) {
return a + b;
}
// 重载方法:双精度版本
public static double add(double a, double b) {
return a + b;
}
}
优势:
- 通过方法重载(Overloading)支持多数据类型
- 避免代码重复,提升可维护性
常见问题及解决方案
| 问题类型 | 原因 | 解决方案 |
|---|---|---|
| 整数溢出 | 超出 int/long 范围 |
使用 BigInteger 类 |
| 精度丢失 | double 计算误差 |
换用 BigDecimal |
| 输入类型错误 | 用户输入非数字 | try-catch 捕获异常 |
| 资源未释放 | 未关闭 Scanner |
调用 scanner.close() |
最佳实践总结
- 明确数据类型:根据需求选择
int,double, 或精确计算类 - 异常处理:用户输入时添加验证逻辑
try { int num = scanner.nextInt(); } catch (InputMismatchException e) { System.out.println("请输入数字!"); } - 大数处理:
- 超长整数:
BigInteger num = new BigInteger("12345678901234567890") - 高精度小数:
BigDecimal(如前文所示)
- 超长整数:
- 代码健壮性:始终关闭资源(I/O流、数据库连接等)
Java的加法操作看似简单,但结合数据类型、异常处理、对象封装等特性,能构建出严谨的工业级应用,建议通过IDE(如IntelliJ IDEA或Eclipse)实践调试,加深理解。

引用说明:本文代码基于Oracle官方Java 17规范,部分优化方案参考《Effective Java》[1],BigDecimal的使用遵循IEEE 754标准[2]。
[1] Bloch, J. (2018). Effective Java (3rd ed.). Addison-Wesley.
[2] IEEE Computer Society. (2019). IEEE Standard for Floating-Point Arithmetic. IEEE Std 754-2019.
