java 如何四舍五入
四舍五入的方法
在Java中,可以使用多种方法实现四舍五入操作,以下是常见的几种方式:
使用Math.round()方法
Math.round()是最简单的四舍五入方法,返回最接近的整数(long或int类型)。对于浮点数,默认四舍五入到小数点后第一位。
double num = 3.6;
long rounded = Math.round(num); // 结果为4
使用BigDecimal类
BigDecimal提供了更精确的四舍五入控制,可以指定小数位数和舍入模式(如RoundingMode.HALF_UP)。
import java.math.BigDecimal;
import java.math.RoundingMode;
double num = 3.14159;
BigDecimal bd = new BigDecimal(num).setScale(2, RoundingMode.HALF_UP); // 结果为3.14
使用DecimalFormat类
DecimalFormat可以格式化数字并四舍五入到指定小数位数,适合输出场景。
import java.text.DecimalFormat;
double num = 3.14159;
DecimalFormat df = new DecimalFormat("#.##");
String result = df.format(num); // 结果为"3.14"
自定义四舍五入逻辑
如果需要更灵活的控制,可以手动实现四舍五入逻辑。

double num = 3.14159;
double scale = 100; // 保留两位小数
double rounded = Math.round(num * scale) / scale; // 结果为3.14
注意事项
Math.round()对负数的处理与正数一致(如-3.6四舍五入为-4)。BigDecimal的setScale方法需明确指定舍入模式,否则可能抛出ArithmeticException。- 浮点数运算可能存在精度问题,高精度场景推荐使用
BigDecimal。






