Hutool工具包Core模块-数字工具介绍

Hutool工具包的Core模块中的NumberUtil工具类提供了一系列方便的方法来处理数字类型的数据。下面是对这个工具类中的方法进行的归纳整理。

加减乘除等数学运算

该部分方法针对不同类型的数字,如:float、double、String、BigDecimal、Number等,提供相对准确的数学运算,对于准确值计算应该使用 BigDecimal。

例如:加法包含以下方法:

add(float v1, float v2)
add(float v1, double v2)
add(double v1, float v2)
add(double v1, double v2)
add(Double v1, Double v2)
add(Number v1, Number v2)
add(Number... values)
add(String... values)
add(BigDecimal... values)

同样的,对于减法、乘法和除法,也有对应的sub、mul、div方法。

保留小数运算

这个部分包含了一系列的四舍五入方法,可以处理不同类型的数字进行四舍五入,并且可以指定精度。

方法包括:

round(double v, int scale)
round(double v, int scale, RoundingMode roundingMode)
round(String numberStr, int scale)
round(String numberStr, int scale, RoundingMode roundingMode)
round(BigDecimal number, int scale)
roundStr(double v, int scale)
round(BigDecimal number, int scale, RoundingMode roundingMode)
roundHalfEven(Number number, int scale)
roundDown(Number number, int scale)

最大值最小值

这一部分包含了一系列的max()、min()方法,可以很方便的取出最大值或最小值。数字的类型包含了所有常见的如int、long、float、short、double、Bigdecimal等数据类型。

例如:

int maxInt = NumberUtil.max(1,2,5,6);
int minInt = NumberUtil.min(new int[]{1,2,4,8});

比较大小

判断两个常见的如int、long、float、short、double、Bigdecimal等数据类型的大小,第一个数字大的返回1,相等返回0,第一个数字小返回-1。

例如:

NumberUtil.compare(1,5); // 返回-1

获取整数列表

range()可以很方便的获取一组步进长度固定的整数列表,例如:

NumberUtil.range(10);//从0开始到10截止,范围内的整数列表,步进为1
NumberUtil.range(2,5);//从2开始到5结束的范围内的整数列表,步进为,
NumberUtil.range(1,10,2);//给定范围内的整数列表,从1开始到10截止,步进为2

数字格式化

方法decimalFormat(String pattern,double d)用来对数字进行必定的格式输出,格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表明如果位数不足则以 0 填充,# 表明只要有可能就把数字拉上这个位置。

  • 0 -> 取一位整数
  • 0.00 -> 取一位整数和两位小数
  • 00.000 -> 取两位整数和三位小数
  • # -> 取所有整数部分
  • #.##% -> 以百分比方式计数,并取两位小数
  • #.#####E0 -> 显示为科学计数法,并取五位小数
  • ,### -> 每三位以逗号进行分隔,例如:299,792,458
  • 光速大小为每秒,###米 -> 将格式嵌入文本

例如:

long c=299792458;//光速
String format = NumberUtil.decimalFormat(",###", c);//299,792,458

数字类型判断

判断是否为数字字符:

  • NumberUtil.isNumber 是否为数字
  • NumberUtil.isInteger 是否为整数
  • NumberUtil.isDouble 是否为浮点数
  • NumberUtil.isPrimes 是否为质数

获取随机数

  • NumberUtil.generateRandomNumber 生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组。
  • NumberUtil.generateBySet 生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组。

两个方法用法类似,其中generateRandomNumber可以根据给定的数据池生成随机数。

其他运算

另外,还包含其它一些高级运算,如:

  • NumberUtil.factorial 阶乘
  • NumberUtil.sqrt 平方根
  • NumberUtil.divisor 最大公约数
  • NumberUtil.multiple 最小公倍数
  • NumberUtil.getBinaryStr 获得数字对应的二进制字符串
  • NumberUtil.binaryToInt 二进制转int
  • NumberUtil.binaryToLong 二进制转long
  • NumberUtil.compare 比较两个值的大小
  • NumberUtil.toStr 数字转字符串,自动并去除尾小数点儿后多余的0

NumberUtil数字工具针对数学运算做工具性封装,在一些数字运算较多的项目或者商业计算中可以极大提高开发效率。

Hutool工具包Core模块-数字工具介绍

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
zexxyy_的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容