马士兵java架构师

您现在的位置是:java学习笔记 >

java学习笔记

Java中四舍五入保留两位小数(3种常用方法)

2023-11-30 14:43:12java学习笔记 本文浏览次数:1 百度已收录

本 文 目 录

首先,Java中四舍五入保留两位小数主要有以下几种方法:

  1. 使用java.lang.Math.round()方法
  2. 使用java.text.DecimalFormat
  3. 使用BigDecimal

以下是这三种方法的对比表格:

方法 优点 缺点
Math.round() 简单易用 只能对整数进行四舍五入,不能直接处理浮点数
DecimalFormat 功能强大,可以自定义格式 初始化时需要创建一个实例,效率较低
BigDecimal 精度高,适合金融计算 代码较复杂

接下来是具体的代码实现及逐行解释:

1. 使用Math.round()方法:

public double roundByMath(double num) {
    return Math.round(num * 100.0) / 100.0;
}
  • roundByMath函数接收一个double类型的参数num
  • num乘以100.0(使结果变为整数),然后使用Math.round()方法进行四舍五入。
  • 最后将结果除以100.0,得到保留两位小数的结果。

2. 使用DecimalFormat类:

import java.text.DecimalFormat;

public String roundByDecimalFormat(double num) {
    DecimalFormat df = new DecimalFormat('#.##');
    return df.format(num);
}
  • 导入java.text.DecimalFormat类。
  • roundByDecimalFormat函数接收一个double类型的参数num
  • 创建一个DecimalFormat对象,并设置格式为'#.##',表示保留两位小数。
  • 使用format()方法将num转换为字符串形式并返回。

3. 使用BigDecimal类:

import java.math.BigDecimal;
import java.math.RoundingMode;

public double roundByBigDecimal(double num) {
    BigDecimal bd = new BigDecimal(Double.toString(num));
    bd = bd.setScale(2, RoundingMode.HALF_UP);
    return bd.doubleValue();
}
  • 导入java.math.BigDecimaljava.math.RoundingMode类。
  • roundByBigDecimal函数接收一个double类型的参数num
  • num转换为字符串,然后创建一个BigDecimal对象。
  • 使用setScale()方法设置小数位数为2,并指定四舍五入模式为RoundingMode.HALF_UP
  • BigDecimal对象转换为double类型并返回。