数字工具针对数学运算做工具性封装。
1 加减乘除
四种运算都会将double转为BigDecimal后计算,解决float和double类型无法进行精确计算的问题。这些方法常用于商业计算。
-
//针对数字类型做加法
-
(1,2);//3
-
// 针对数字类型做减法
-
(1,1);//0
-
//针对数字类型做乘法
-
(1,3);//3
-
//针对数字类型做除法,并提供重载方法用于规定除不尽的情况下保留小数位数和舍弃方式。
-
(1,3);//0.3333333333
2 保留小数
保留小数的方法主要有两种:
(1) 方法主要封装BigDecimal中的方法来保留小数,返回BigDecimal,这个方法更加灵活,可以选择四舍五入或者全部舍弃等模式。
-
double te1 = 123456.123456;
-
double te2 = 123456.128456;
-
(te1, 4);//结果:123456.1235
-
(te2, 4);//结果:123456.1285
(2) 方法主要封装String.format方法,舍弃方式采用四舍五入。
-
double te1 = 123456.123456;
-
double te2 = 123456.128456;
-
(te1, 4);//结果:123456.1235
-
(te2, 4);//结果:123456.1285
3 格式化数字
针对 进行简单封装。按照固定格式对double或long类型的数字做格式化操作。
-
long c=299792458;//光速
-
String format = (",###", c);//299,792,458
格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。
(1)0 -> 取一位整数
(2)0.00 -> 取一位整数和两位小数
(3)00.000 -> 取两位整数和三位小数
(4)# -> 取所有整数部分
(5)#.##% -> 以百分比方式计数,并取两位小数
(6)#.#####E0 -> 显示为科学计数法,并取五位小数
(7),### -> 每三位以逗号进行分隔,例如:299,792,458
(8)光速大小为每秒,###米 -> 将格式嵌入文本
4 是否为数字
-
// 是否为数字
-
("1");//true
-
//是否为整数
-
("1.0");//false
-
//是否为浮点数
-
("1.0");//true
-
//是否为质数
-
(3);//true;
5 随机数
-
//生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组,返回int[]
-
(0, 100, 10);
-
//生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组,返回Integer[]
-
(0, 100, 10);
6 整数列表
-
//方法根据范围和步进,生成一个有序整数列表
-
int[] rangeList = (1, 100, 2);//1,3,5,...99
-
//将给定范围内的整数添加到已有集合中
-
List<Integer> rangeList2 = (100, 200, 2
-
, new ArrayList<Integer>((new Integer[]{1})))
-
.stream().collect(());
7 阶乘
-
//阶乘
-
(3, 1);//6
8 平方根
-
//平方根
-
(16);//4
9 最大公约数和最小公倍数
-
//最大公约数
-
(15, 21);//3
-
//最小公倍数
-
(15, 21);//105
10 进制转换
-
//获得数字对应的二进制字符串
-
(8);//1000
-
//二进制转int
-
("111");//7
-
//二进制转long
-
("111");//7
11 比较大小
-
//比较两个值的大小
-
(1, 3);//-1
12 去除多余的0
-
//数字转字符串,自动并去除尾小数点儿后多余的0
-
(1.00000);//1
旭东怪的个人空间_哔哩哔哩_Bilibili旭东怪,人生低谷不可怕,可怕的是坚持不到人生转折点的那一天;旭东怪的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。/484264966?spm_id_from=333.1007.0.0