java进行四舍五入

public class AverageUtil {
    /**
     * 求和
     *
     * @param arr
     * @return
     */
    public static float getSum(List ls) {
        float sum = 0;
        for (Object num : ls) {
            sum += (int) num;
        }
        return sum;
    }

    /**
     * 求均值
     *
     * @param arr
     * @return
     */
    public static int getMean(List ls) {
        float temp = getSum(ls) / ls.size();
        return Math.round(temp);                                         //四舍五入
    }
    
}
 

Java 中,使用 `BigDecimal` 实现四舍五入可以借助 `setScale` 方法。以下是几种不同场景下的实现示例: ### 四舍五入保留 2 位小数的方法 ```java import java.math.BigDecimal; public class BigDecimalRoundingExample { public static Double formateDouble45(Object d) { if (d == null) { return 0d; } BigDecimal b = new BigDecimal(d.toString()); double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); return f; } } ``` 该方法接收一个 `Object` 类型的参数,先判断其是否为 `null`,若为 `null` 则返回 0.0,否则将其转换为 `String` 类型后创建 `BigDecimal` 对象,使用 `setScale(2, BigDecimal.ROUND_HALF_UP)` 方法保留 2 位小数并进行四舍五入,最后将结果转换为 `double` 类型返回 [^2]。 ### 通用的四舍五入方法 ```java import java.math.BigDecimal; import java.math.RoundingMode; public class Test { public static Double round(Double value, int scale) { double result = 0.0; if (null != value) { result = new BigDecimal(String.valueOf(value)).setScale(scale, RoundingMode.HALF_UP).doubleValue(); } return result; } } ``` 此方法接收一个 `Double` 类型的值和一个整数 `scale`,用于指定保留的小数位数。当传入的值不为 `null` 时,将其转换为 `String` 类型创建 `BigDecimal` 对象,使用 `setScale(scale, RoundingMode.HALF_UP)` 方法按指定小数位数进行四舍五入,最后转换为 `double` 类型返回 [^4]。 ### 直接示例代码 ```java import java.math.BigDecimal; public class Main { public static void main(String[] args) { BigDecimal b = new BigDecimal(9.655); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println(f1); } } ``` 在这个示例中,直接创建一个 `BigDecimal` 对象,使用 `setScale(2, BigDecimal.ROUND_HALF_UP)` 方法保留 2 位小数并四舍五入,最后将结果转换为 `double` 类型输出 [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值