public class NumberUtils extends Object
BigDecimal
JDK7中BigDecimal(double val)构造方法的结果有一定的不可预知性,例如:
new BigDecimal(0.1)
表示的不是0.1而是0.1000000000000000055511151231257827021181583404541015625
这是因为0.1无法准确的表示为double 因此应该使用new BigDecimal(String)
| Constructor and Description |
|---|
NumberUtils() |
| Modifier and Type | Method and Description |
|---|---|
static BigDecimal |
add(BigDecimal... values)
提供精确的加法运算
如果传入多个值为null或者空,则返回0
|
static double |
add(double v1,
double v2)
提供精确的加法运算
|
static double |
add(double v1,
float v2)
提供精确的加法运算
|
static double |
add(float v1,
double v2)
提供精确的加法运算
|
static double |
add(float v1,
float v2)
提供精确的加法运算
|
static BigDecimal |
add(Number... values)
提供精确的加法运算
如果传入多个值为null或者空,则返回0
|
static BigDecimal |
add(Number v1,
Number v2)
提供精确的加法运算
如果传入多个值为null或者空,则返回0
|
static BigDecimal |
add(String... values)
提供精确的加法运算
如果传入多个值为null或者空,则返回0
|
static String |
addZero(Number numObj,
int length)
给数字对象按照指定长度在左侧补0.
|
static Collection<Integer> |
appendRange(int start,
int stop,
Collection<Integer> values)
将给定范围内的整数添加到已有集合中,步进为1
|
static Collection<Integer> |
appendRange(int start,
int stop,
int step,
Collection<Integer> values)
将给定范围内的整数添加到已有集合中
|
static int |
binaryToInt(String binaryStr)
二进制转int
|
static long |
binaryToLong(String binaryStr)
二进制转long
|
static int |
compare(byte x,
byte y)
比较两个值的大小
|
static int |
compare(char x,
char y)
比较两个值的大小
|
static int |
compare(double x,
double y)
比较两个值的大小
|
static int |
compare(int x,
int y)
比较两个值的大小
|
static int |
compare(long x,
long y)
比较两个值的大小
|
static int |
compare(short x,
short y)
比较两个值的大小
|
static int |
count(int total,
int part)
计算等份个数
|
static String |
decimalFormat(String pattern,
double value)
格式化double
对
DecimalFormat 做封装 |
static String |
decimalFormat(String pattern,
long value)
格式化double
对
DecimalFormat 做封装 |
static String |
decimalFormatMoney(double value)
格式化金额输出,每三位用逗号分隔
|
static double |
div(double v1,
double v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
|
static double |
div(double v1,
double v2,
int scale)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度,后面的四舍五入
|
static double |
div(double v1,
double v2,
int scale,
RoundingMode roundingMode)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度
|
static double |
div(double v1,
float v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
|
static double |
div(double v1,
float v2,
int scale)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度,后面的四舍五入
|
static double |
div(double v1,
float v2,
int scale,
RoundingMode roundingMode)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度
|
static double |
div(float v1,
double v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
|
static double |
div(float v1,
double v2,
int scale)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度,后面的四舍五入
|
static double |
div(float v1,
double v2,
int scale,
RoundingMode roundingMode)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度
|
static double |
div(float v1,
float v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
|
static double |
div(float v1,
float v2,
int scale)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度,后面的四舍五入
|
static double |
div(float v1,
float v2,
int scale,
RoundingMode roundingMode)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度
|
static BigDecimal |
div(Number v1,
Number v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
|
static BigDecimal |
div(Number v1,
Number v2,
int scale)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度,后面的四舍五入
|
static BigDecimal |
div(Number v1,
Number v2,
int scale,
RoundingMode roundingMode)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度
|
static BigDecimal |
div(String v1,
String v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
|
static BigDecimal |
div(String v1,
String v2,
int scale)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度,后面的四舍五入
|
static BigDecimal |
div(String v1,
String v2,
int scale,
RoundingMode roundingMode)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度
|
static int |
divisor(int m,
int n)
最大公约数
|
static boolean |
equals(char c1,
char c2,
boolean ignoreCase)
比较两个字符是否相同
|
static long |
factorial(long n)
计算阶乘
|
static long |
factorial(long start,
long end)
计算阶乘
|
static String |
formatPercent(double number,
int scale)
格式化百分比,小数采用四舍五入方式
|
static Integer[] |
generateBySet(int begin,
int end,
int size)
生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组
|
static int[] |
generateRandomNumber(int begin,
int end,
int size)
生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组
|
static String |
getBinaryStr(Number number)
获得数字对应的二进制字符串
|
static boolean |
isBeside(int number1,
int number2)
判断两个数字是否相邻,例如1和2相邻,1和3不相邻
判断方法为做差取绝对值判断是否为1
|
static boolean |
isBeside(long number1,
long number2)
判断两个数字是否相邻,例如1和2相邻,1和3不相邻
判断方法为做差取绝对值判断是否为1
|
static boolean |
isDouble(String s)
判断字符串是否是浮点数
|
static boolean |
isInteger(String s)
判断String是否是整数
|
static boolean |
isLong(String s)
判断字符串是否是Long类型
|
static boolean |
isNumber(String str)
是否为数字
|
static boolean |
isPrimes(int n)
是否是质数
质数表的质数又称素数 指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数
|
static double |
max(double... numberArray)
取最大值
|
static float |
max(float... numberArray)
取最大值
|
static int |
max(int... numberArray)
取最大值
|
static long |
max(long... numberArray)
取最大值
|
static short |
max(short... numberArray)
取最大值
|
static <T extends Comparable<? super T>> |
max(T... numberArray)
取最大值
|
static double |
min(double... numberArray)
取最小值
|
static float |
min(float... numberArray)
取最小值
|
static int |
min(int... numberArray)
取最小值
|
static long |
min(long... numberArray)
取最小值
|
static short |
min(short... numberArray)
取最小值
|
static <T extends Comparable<? super T>> |
min(T... numberArray)
取最小值
|
static BigDecimal |
mul(BigDecimal... values)
提供精确的乘法运算
如果传入多个值为null或者空,则返回0
|
static double |
mul(double v1,
double v2)
提供精确的乘法运算
|
static double |
mul(double v1,
float v2)
提供精确的乘法运算
|
static double |
mul(float v1,
double v2)
提供精确的乘法运算
|
static double |
mul(float v1,
float v2)
提供精确的乘法运算
|
static BigDecimal |
mul(Number... values)
提供精确的乘法运算
如果传入多个值为null或者空,则返回0
|
static BigDecimal |
mul(Number v1,
Number v2)
提供精确的乘法运算
如果传入多个值为null或者空,则返回0
|
static BigDecimal |
mul(String... values)
提供精确的乘法运算
如果传入多个值为null或者空,则返回0
|
static BigDecimal |
mul(String v1,
String v2)
提供精确的乘法运算
|
static int |
multiple(int m,
int n)
最小公倍数
|
static BigInteger |
newBigInteger(String str)
创建
BigInteger,支持16进制、10进制和8进制,如果传入空白串返回null
from Apache Common Lang |
static BigDecimal |
null2Zero(BigDecimal decimal)
空转0
|
static int |
parseInt(String number)
解析转换数字字符串为int型数字,规则如下:
|
static long |
parseLong(String number)
解析转换数字字符串为long型数字,规则如下:
|
static Number |
parseNumber(String numberStr)
将指定字符串转换为
Number 对象 |
static int |
partValue(int total,
int partCount)
把给定的总数平均分成N份,返回每份的个数
当除以分数有余数时每份+1
|
static int |
partValue(int total,
int partCount,
boolean isPlusOneWhenHasRem)
把给定的总数平均分成N份,返回每份的个数
如果isPlusOneWhenHasRem为true,则当除以分数有余数时每份+1,否则丢弃余数部分
|
static BigDecimal |
pow(BigDecimal number,
int n)
提供精确的幂运算
|
static BigDecimal |
pow(Number number,
int n)
提供精确的幂运算
|
static int |
processMultiple(int selectNum,
int minNum)
可以用于计算双色球、大乐透注数的方法
比如大乐透35选5可以这样调用processMultiple(7,5); 就是数学中的:C75=7*6/2*1
|
static int[] |
range(int stop)
从0开始给定范围内的整数列表,步进为1
|
static int[] |
range(int start,
int stop)
给定范围内的整数列表,步进为1
|
static int[] |
range(int start,
int stop,
int step)
给定范围内的整数列表
|
static BigDecimal |
round(BigDecimal number,
int scale)
保留固定位数小数
采用四舍五入策略
RoundingMode.HALF_UP
例如保留2位小数:123.456789 =》 123.46 |
static BigDecimal |
round(BigDecimal number,
int scale,
RoundingMode roundingMode)
保留固定位数小数
例如保留四位小数:123.456789 =》 123.4567
|
static BigDecimal |
roundDown(BigDecimal value,
int scale)
保留固定小数位数,舍去多余位数
|
static BigDecimal |
roundDown(Number number,
int scale)
保留固定小数位数,舍去多余位数
|
static BigDecimal |
roundHalfEven(BigDecimal value,
int scale)
四舍六入五成双计算法
|
static BigDecimal |
roundHalfEven(Number number,
int scale)
四舍六入五成双计算法
|
static long |
sqrt(long x)
平方根算法
推荐使用
Math.sqrt(double) |
static BigDecimal |
sub(BigDecimal... values)
提供精确的减法运算
如果传入多个值为null或者空,则返回0
|
static double |
sub(double v1,
double v2)
提供精确的减法运算
|
static double |
sub(double v1,
float v2)
提供精确的减法运算
|
static double |
sub(float v1,
double v2)
提供精确的减法运算
|
static double |
sub(float v1,
float v2)
提供精确的减法运算
|
static BigDecimal |
sub(Number... values)
提供精确的减法运算
如果传入多个值为null或者空,则返回0
|
static BigDecimal |
sub(Number v1,
Number v2)
提供精确的减法运算
如果传入多个值为null或者空,则返回0
|
static BigDecimal |
sub(String... values)
提供精确的减法运算
如果传入多个值为null或者空,则返回0
|
static BigDecimal |
toBigDecimal(Number number)
数字转
BigDecimal |
static BigDecimal |
toBigDecimal(String number)
数字转
BigDecimal |
static String |
toStr(Number number)
数字转字符串
调用
Object.toString(),并去除尾小数点儿后多余的0 |
static String |
toStr(Number number,
String defaultValue)
数字转字符串
调用
Object.toString(),并去除尾小数点儿后多余的0 |
static int |
zero2One(int value)
如果给定值为0,返回1,否则返回原值
|
public static double add(float v1,
float v2)
v1 - 被加数v2 - 加数public static double add(float v1,
double v2)
v1 - 被加数v2 - 加数public static double add(double v1,
float v2)
v1 - 被加数v2 - 加数public static double add(double v1,
double v2)
v1 - 被加数v2 - 加数public static BigDecimal add(Number v1, Number v2)
v1 - 被加数v2 - 加数public static BigDecimal add(Number... values)
values - 多个被加值public static BigDecimal add(String... values)
values - 多个被加值public static BigDecimal add(BigDecimal... values)
values - 多个被加值public static double sub(float v1,
float v2)
v1 - 被减数v2 - 减数public static double sub(float v1,
double v2)
v1 - 被减数v2 - 减数public static double sub(double v1,
float v2)
v1 - 被减数v2 - 减数public static double sub(double v1,
double v2)
v1 - 被减数v2 - 减数public static BigDecimal sub(Number v1, Number v2)
v1 - 被减数v2 - 减数public static BigDecimal sub(Number... values)
values - 多个被减值public static BigDecimal sub(String... values)
values - 多个被减值public static BigDecimal sub(BigDecimal... values)
values - 多个被减值public static double mul(float v1,
float v2)
v1 - 被乘数v2 - 乘数public static double mul(float v1,
double v2)
v1 - 被乘数v2 - 乘数public static double mul(double v1,
float v2)
v1 - 被乘数v2 - 乘数public static double mul(double v1,
double v2)
v1 - 被乘数v2 - 乘数public static BigDecimal mul(Number v1, Number v2)
v1 - 被乘数v2 - 乘数public static BigDecimal mul(Number... values)
values - 多个被乘值public static BigDecimal mul(String v1, String v2)
v1 - 被乘数v2 - 乘数public static BigDecimal mul(String... values)
values - 多个被乘值public static BigDecimal mul(BigDecimal... values)
values - 多个被乘值public static double div(float v1,
float v2)
v1 - 被除数v2 - 除数public static double div(float v1,
double v2)
v1 - 被除数v2 - 除数public static double div(double v1,
float v2)
v1 - 被除数v2 - 除数public static double div(double v1,
double v2)
v1 - 被除数v2 - 除数public static BigDecimal div(Number v1, Number v2)
v1 - 被除数v2 - 除数public static BigDecimal div(String v1, String v2)
v1 - 被除数v2 - 除数public static double div(float v1,
float v2,
int scale)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值public static double div(float v1,
double v2,
int scale)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值public static double div(double v1,
float v2,
int scale)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值public static double div(double v1,
double v2,
int scale)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值public static BigDecimal div(Number v1, Number v2, int scale)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值public static BigDecimal div(String v1, String v2, int scale)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值public static double div(float v1,
float v2,
int scale,
RoundingMode roundingMode)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值roundingMode - 保留小数的模式 RoundingModepublic static double div(float v1,
double v2,
int scale,
RoundingMode roundingMode)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值roundingMode - 保留小数的模式 RoundingModepublic static double div(double v1,
float v2,
int scale,
RoundingMode roundingMode)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值roundingMode - 保留小数的模式 RoundingModepublic static double div(double v1,
double v2,
int scale,
RoundingMode roundingMode)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值roundingMode - 保留小数的模式 RoundingModepublic static BigDecimal div(Number v1, Number v2, int scale, RoundingMode roundingMode)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值roundingMode - 保留小数的模式 RoundingModepublic static BigDecimal div(String v1, String v2, int scale, RoundingMode roundingMode)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值roundingMode - 保留小数的模式 RoundingModepublic static BigDecimal round(BigDecimal number, int scale)
RoundingMode.HALF_UP
例如保留2位小数:123.456789 =》 123.46number - 数字值scale - 保留小数位数public static BigDecimal round(BigDecimal number, int scale, RoundingMode roundingMode)
number - 数字值scale - 保留小数位数,如果传入小于0,则默认0roundingMode - 保留小数的模式 RoundingMode,如果传入null则默认四舍五入public static BigDecimal roundHalfEven(Number number, int scale)
四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则
算法规则: 四舍六入五考虑, 五后非零就进一, 五后皆零看奇偶, 五前为偶应舍去, 五前为奇要进一
number - 需要科学计算的数据scale - 保留的小数位public static BigDecimal roundHalfEven(BigDecimal value, int scale)
四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则
算法规则: 四舍六入五考虑, 五后非零就进一, 五后皆零看奇偶, 五前为偶应舍去, 五前为奇要进一
value - 需要科学计算的数据scale - 保留的小数位public static BigDecimal roundDown(Number number, int scale)
number - 需要科学计算的数据scale - 保留的小数位public static BigDecimal roundDown(BigDecimal value, int scale)
value - 需要科学计算的数据scale - 保留的小数位public static String decimalFormat(String pattern, double value)
DecimalFormat 做封装pattern - 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度 0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置
value - 值public static String decimalFormat(String pattern, long value)
DecimalFormat 做封装pattern - 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度 0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置
value - 值public static String decimalFormatMoney(double value)
value - 金额public static String formatPercent(double number, int scale)
number - 值scale - 保留小数位数public static boolean isNumber(String str)
str - 字符串值public static boolean isInteger(String s)
s - Stringpublic static boolean isLong(String s)
s - StringLong类型public static boolean isDouble(String s)
s - StringDouble类型public static boolean isPrimes(int n)
n - 数字public static int[] generateRandomNumber(int begin,
int end,
int size)
begin - 最小数字(包含该数)end - 最大数字(不包含该数)size - 指定产生随机数的个数public static Integer[] generateBySet(int begin, int end, int size)
begin - 最小数字(包含该数)end - 最大数字(不包含该数)size - 指定产生随机数的个数public static int[] range(int stop)
stop - 结束(包含)public static int[] range(int start,
int stop)
start - 开始(包含)stop - 结束(包含)public static int[] range(int start,
int stop,
int step)
start - 开始(包含)stop - 结束(包含)step - 步进public static Collection<Integer> appendRange(int start, int stop, Collection<Integer> values)
start - 开始(包含)stop - 结束(包含)values - 集合public static Collection<Integer> appendRange(int start, int stop, int step, Collection<Integer> values)
start - 开始(包含)stop - 结束(包含)step - 步进values - 集合public static long factorial(long start,
long end)
n! = n * (n-1) * ... * end
start - 阶乘起始end - 阶乘结束public static long factorial(long n)
n! = n * (n-1) * ... * 2 * 1
n - 阶乘起始public static long sqrt(long x)
Math.sqrt(double)x - 值public static int processMultiple(int selectNum,
int minNum)
selectNum - 选中小球个数minNum - 最少要选中多少个小球public static int divisor(int m,
int n)
m - 第一个值n - 第二个值public static int multiple(int m,
int n)
m - 第一个值n - 第二个值public static String getBinaryStr(Number number)
number - 数字public static int binaryToInt(String binaryStr)
binaryStr - 二进制字符串public static long binaryToLong(String binaryStr)
binaryStr - 二进制字符串public static int compare(char x,
char y)
x - 第一个值y - 第二个值Character.compare(char, char)public static int compare(double x,
double y)
x - 第一个值y - 第二个值Double.compare(double, double)public static int compare(int x,
int y)
x - 第一个值y - 第二个值Integer.compare(int, int)public static int compare(long x,
long y)
x - 第一个值y - 第二个值Long.compare(long, long)public static int compare(short x,
short y)
x - 第一个值y - 第二个值Short.compare(short, short)public static int compare(byte x,
byte y)
x - 第一个值y - 第二个值Byte.compare(byte, byte)public static boolean equals(char c1,
char c2,
boolean ignoreCase)
c1 - 字符1c2 - 字符2ignoreCase - 是否忽略大小写CharUtils.equals(char, char, boolean)public static <T extends Comparable<? super T>> T min(T... numberArray)
T - 元素类型numberArray - 数字数组ArrayUtils.min(Comparable[])public static long min(long... numberArray)
numberArray - 数字数组ArrayUtils.min(long...)public static int min(int... numberArray)
numberArray - 数字数组ArrayUtils.min(int...)public static short min(short... numberArray)
numberArray - 数字数组ArrayUtils.min(short...)public static double min(double... numberArray)
numberArray - 数字数组ArrayUtils.min(double...)public static float min(float... numberArray)
numberArray - 数字数组ArrayUtils.min(float...)public static <T extends Comparable<? super T>> T max(T... numberArray)
T - 元素类型numberArray - 数字数组ArrayUtils.max(Comparable[])public static long max(long... numberArray)
numberArray - 数字数组ArrayUtils.max(long...)public static int max(int... numberArray)
numberArray - 数字数组ArrayUtils.max(int...)public static short max(short... numberArray)
numberArray - 数字数组ArrayUtils.max(short...)public static double max(double... numberArray)
numberArray - 数字数组ArrayUtils.max(double...)public static float max(float... numberArray)
numberArray - 数字数组ArrayUtils.max(float...)public static String toStr(Number number, String defaultValue)
Object.toString(),并去除尾小数点儿后多余的0number - A NumberdefaultValue - 如果number参数为null,返回此默认值public static String toStr(Number number)
Object.toString(),并去除尾小数点儿后多余的0number - A Numberpublic static BigDecimal toBigDecimal(Number number)
BigDecimalnumber - 数字BigDecimalpublic static BigDecimal toBigDecimal(String number)
BigDecimalnumber - 数字BigDecimalpublic static int count(int total,
int part)
total - 总数part - 每份的个数public static BigDecimal null2Zero(BigDecimal decimal)
decimal - BigDecimal,可以为nullBigDecimal参数为空时返回0的值public static int zero2One(int value)
value - 值public static BigInteger newBigInteger(String str)
BigInteger,支持16进制、10进制和8进制,如果传入空白串返回null
from Apache Common Langstr - 数字字符串BigIntegerpublic static boolean isBeside(long number1,
long number2)
number1 - 数字1number2 - 数字2public static boolean isBeside(int number1,
int number2)
number1 - 数字1number2 - 数字2public static int partValue(int total,
int partCount)
total - 总数partCount - 份数public static int partValue(int total,
int partCount,
boolean isPlusOneWhenHasRem)
total - 总数partCount - 份数isPlusOneWhenHasRem - 在有余数时是否每份+1public static BigDecimal pow(Number number, int n)
number - 底数n - 指数public static BigDecimal pow(BigDecimal number, int n)
number - 底数n - 指数public static int parseInt(String number)
1、0x开头的视为16进制数字 2、0开头的视为8进制数字 3、空串返回0 4、其它情况按照10进制转换
number - 数字,支持0x开头、0开头和普通十进制public static long parseLong(String number)
1、0x开头的视为16进制数字 2、0开头的视为8进制数字 3、空串返回0 4、其它情况按照10进制转换
number - 数字,支持0x开头、0开头和普通十进制public static Number parseNumber(String numberStr)
Number 对象numberStr - Number字符串Copyright © 2019. All rights reserved.