Hutool 之 NumberUtil
发表于:2023-11-20浏览:21次TAG: #hutool
### 保留小数
保留小数的方法主要有两种:
* `NumberUtil.round` 方法主要封装BigDecimal中的方法来保留小数,返回BigDecimal,这个方法更加灵活,可以选择四舍五入或者全部舍弃等模式。
```java
double te1=123456.123456;
double te2=123456.128456;
Console.log(round(te1,4));//结果:123456.1235
Console.log(round(te2,4));//结果:123456.1285
```
* `NumberUtil.roundStr` 方法主要封装`String.format`方法,舍弃方式采用四舍五入。
```java
double te1=123456.123456;
double te2=123456.128456;
Console.log(roundStr(te1,2));//结果:123456.12
Console.log(roundStr(te2,2));//结果:123456.13
```
### decimalFormat
针对 `DecimalFormat.format`进行简单封装。按照固定格式对double或long类型的数字做格式化操作。
```java
long c=299792458;//光速
String format = NumberUtil.decimalFormat(",###", c);//299,792,458
```
格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。
* 0 -> 取一位整数
* 0.00 -> 取一位整数和两位小数
* 00.000 -> 取两位整数和三位小数
* #-> 取所有整数部分
* #.##% -> 以百分比方式计数,并取两位小数
* #.#####E0 -> 显示为科学计数法,并取五位小数
* ,### -> 每三位以逗号进行分隔,例如:299,792,458
* 光速大小为每秒,###米 -> 将格式嵌入文本
### 随机数
* `NumberUtil.generateRandomNumber` 生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组。
* `NumberUtil.generateBySet` 生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组。