我是靠谱客的博主 内向铃铛,最近开发中收集的这篇文章主要介绍BigDecimal的最大值,最小值,中位数,排序操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

BigDecimal的最大值,最小值,中位数,排序操作
由于使用double数组对数据进行操作会引起精度损失,所以使用BigDecimal
进行计算

package com.test.annotation.test.test;


import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 平均值 中位数 百分位数 最大值 最小值 方差
 */
public class TestBigDecimal {
    public static void main(String[] args) {
//        DecimalFormat df = new DecimalFormat();
//        df.setMaximumFractionDigits(2);
//        System.out.println( "avg "+df.format(avg(getBigDecimal())));
//        System.out.println("max " + max(getBigDecimal()));
//        System.out.println("min " + min(getBigDecimal()));
//        sort(getBigDecimal());
        median(getBigDecimal());
    }

    /**
     * 中位数
     */
    public static BigDecimal median(List<BigDecimal> list) {
        if(null ==list)return null;
        Collections.sort(list);
        int size = list.size();
        if (size % 2 == 1) {
            return list.get((size - 1) / 2);
        } else {
            return  (list.get(size/2-1).add(list.get(size/2))).divide(new BigDecimal(2),3);
        }
    }

    /**
     * 排序
     */

    public static List<BigDecimal> sort(List<BigDecimal> list) {
        if(null ==list)return null;
        Collections.sort(list);
        return list;

    }
    /**
     * 最大值
     */
    public static BigDecimal max(List<BigDecimal> list) {
        if(null ==list)return null;
//        BigDecimal max = Collections.max(list);

        BigDecimal sum = list.get(0);
        for (int i = 1; i < list.size(); i++) {
            sum = sum.max(list.get(i));
        }
        return sum;
    }

    /**
     * 最小值
     */
    public static BigDecimal min(List<BigDecimal> list) {
        if(null ==list)return null;
//        BigDecimal min = Collections.min(list);
        BigDecimal sum = list.get(0);
        for (int i = 1; i < list.size(); i++) {
            sum = sum.min(list.get(i));
        }
        return sum;
    }

    /**
     * 平均值
     *
     * @return
     */
    public static BigDecimal avg(List<BigDecimal> list) {
        if(null ==list)return null;
        BigDecimal sum = list.get(0);
        for (int i = 1; i < list.size(); i++) {
            sum = sum.add(list.get(i));
        }
        BigDecimal sum1 = new BigDecimal(list.size());
        BigDecimal avg = sum.divide(sum1, 2);
        System.out.println(avg);
        return avg;
    }


    public static List<BigDecimal> getBigDecimal() {
        List<String> list = new ArrayList();
        list.add("2.3");
        list.add("2.3000");
        list.add("2.8974");
        list.add("2.5");
        list.add("2.5");
        list.add("2.7");
        list.add("2.4");
        list.add("2.6");
        List<BigDecimal> list1 = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            list1.add(new BigDecimal(list.get(i)));
        }
        return list1;
    }
}

最后

以上就是内向铃铛为你收集整理的BigDecimal的最大值,最小值,中位数,排序操作的全部内容,希望文章能够帮你解决BigDecimal的最大值,最小值,中位数,排序操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部