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

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部