public class Numbers extends Object
| 构造器和说明 |
|---|
Numbers() |
| 限定符和类型 | 方法和说明 |
|---|---|
static BigDecimal |
add(BigDecimal... values)
提供精确的加法运算
如果传入多个值为null或者空,则返回0 |
static double |
add(double v1,
double v2)
提供精确的加法运算
|
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 需要注意的是,在不同Locale下,数字的表示形式也是不同的,例如: 德国、荷兰、比利时、丹麦、意大利、罗马尼亚和欧洲大多地区使用`,`区分小数 也就是说,在这些国家地区,1.20表示120,而非1.2。 |
static BigDecimal |
add(Number v1,
Number v2)
提供精确的加法运算
如果传入多个值为null或者空,则返回0 需要注意的是,在不同Locale下,数字的表示形式也是不同的,例如: 德国、荷兰、比利时、丹麦、意大利、罗马尼亚和欧洲大多地区使用`,`区分小数 也就是说,在这些国家地区,1.20表示120,而非1.2。 |
static BigDecimal |
add(String... values)
提供精确的加法运算
如果传入多个值为null或者空,则返回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 double |
calculate(String expression)
计算数学表达式的值,只支持加减乘除和取余
如:
calculate("(0*1--3)-5/-4-(3*(-2.13))") -》 10.64
|
static int |
ceilDiv(int x,
int y)
补充Math.ceilDiv() JDK8中添加了和Math.floorDiv()但却没有ceilDiv()
|
static long |
ceilDiv(long x,
long y) |
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 String |
decimalFormat(String pattern,
double value)
|
static String |
decimalFormat(String pattern,
long value)
|
static String |
decimalFormat(String pattern,
Object value)
|
static String |
decimalFormat(String pattern,
Object value,
RoundingMode roundingMode)
|
static String |
decimalFormatMoney(double value)
格式化金额输出,每三位用逗号分隔
|
static BigDecimal |
div(BigDecimal v1,
BigDecimal v2,
int scale,
RoundingMode roundingMode)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度
|
static double |
div(double v1,
double v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
|
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)
提供(相对)精确的除法运算,当发生除不尽的情况时,由scale指定精确度,后面的四舍五入
|
static double |
div(double v1,
double v2,
int scale,
RoundingMode roundingMode)
提供(相对)精确的除法运算,当发生除不尽的情况时,由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(BigDecimal bigNum1,
BigDecimal bigNum2)
|
static boolean |
equals(char c1,
char c2,
boolean ignoreCase)
比较两个字符是否相同
|
static boolean |
equals(double num1,
double num2)
|
static boolean |
equals(float num1,
float num2)
|
static boolean |
equals(long num1,
long num2)
比较大小,值相等 返回true
此方法修复传入long型数据由于没有本类型重载方法,导致数据精度丢失 |
static boolean |
equals(Number number1,
Number number2)
比较数字值是否相等,相等返回
true需要注意的是 BigDecimal需要特殊处理BigDecimal使用compareTo方式判断,因为使用equals方法也判断小数位数,如2.0和2.00就不相等, 此方法判断值相等时忽略精度的,即0.00 == 0 如果用户提供两个Number都是 BigDecimal,则通过调用BigDecimal.compareTo(BigDecimal)方法来判断是否相等
其他情况调用Object.equals(Object)比较
|
static BigInteger |
factorial(BigInteger n)
计算阶乘
n!
|
static BigInteger |
factorial(BigInteger start,
BigInteger end)
计算范围阶乘
factorial(start, end) = start * (start - 1) * ... * (end + 1)
|
static long |
factorial(long n)
计算阶乘
n!
|
static long |
factorial(long start,
long end)
计算范围阶乘
factorial(start, end) = start * (start - 1) * ... * (end + 1)
|
static int |
floorDiv(int x,
int y) |
static long |
floorDiv(long x,
long y) |
static String |
formatPercent(double number,
int scale)
格式化百分比,小数采用四舍五入方式
|
static BigInteger |
fromUnsignedByteArray(byte[] buf) |
static BigInteger |
fromUnsignedByteArray(byte[] buf,
int off,
int length) |
static Integer[] |
generateBySet(int begin,
int end,
int size)
生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组
|
static int[] |
generateRandomNumber(int begin,
int end,
int size)
生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组
|
static int[] |
generateRandomNumber(int begin,
int end,
int size,
int[] seed)
生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组
|
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 |
isEven(int num)
检查是否为偶数
|
static boolean |
isGreater(BigDecimal bigNum1,
BigDecimal bigNum2)
比较大小,参数1 > 参数2 返回true
|
static boolean |
isGreaterOrEqual(BigDecimal bigNum1,
BigDecimal bigNum2)
比较大小,参数1 >= 参数2 返回true
|
static boolean |
isIn(BigDecimal value,
BigDecimal minInclude,
BigDecimal maxInclude)
检查值是否在指定范围内
|
static boolean |
isInteger(String s)
判断String是否是整数
支持10进制 |
static boolean |
isLess(BigDecimal bigNum1,
BigDecimal bigNum2)
比较大小,参数1 < 参数2 返回true
|
static boolean |
isLessOrEqual(BigDecimal bigNum1,
BigDecimal bigNum2)
比较大小,参数1<=参数2 返回true
|
static boolean |
isLong(String s)
判断字符串是否是Long类型
支持10进制 |
static boolean |
isNumber(CharSequence str)
是否为数字,支持包括:
1、10进制
2、16进制数字(0x开头)
3、科学计数法形式(1234E3)
4、类型标识形式(123D)
5、正负数标识形式(+123、-234)
|
static boolean |
isOdd(int num)
检查是否为奇数
|
static boolean |
isPowerOfTwo(long n)
判断一个整数是否是2的幂
|
static boolean |
isPrime(int n)
是否是质数(素数)
质数表的质数又称素数。 |
static boolean |
isValid(double number)
检查是否为有效的数字
检查double否为无限大,或者Not a Number(NaN) |
static boolean |
isValid(float number)
检查是否为有效的数字
检查double否为无限大,或者Not a Number(NaN) |
static boolean |
isValidNumber(Number number)
检查是否为有效的数字
检查Double和Float是否为无限大,或者Not a Number 非数字类型和Null将返回true |
static BigDecimal |
max(BigDecimal... numberArray)
取最大值
|
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 BigDecimal |
min(BigDecimal... 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,
Double v2)
提供精确的乘法运算
如果传入多个值为null或者空,则返回0 |
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) |
static double |
parseDouble(String number)
解析转换数字字符串为long型数字,规则如下:
1、0开头的忽略开头的0
2、空串返回0
3、其它情况按照10进制转换
4、.123形式返回0.123(按照小于0的小数对待)
|
static Double |
parseDouble(String numberStr,
Double defaultValue)
解析转换数字字符串为
Double 规则如下:
1、0开头的忽略开头的0
2、空串返回0
3、其它情况按照10进制转换
4、.123形式返回0.123(按照小于0的小数对待)
|
static float |
parseFloat(String number)
解析转换数字字符串为long型数字,规则如下:
1、0开头的忽略开头的0
2、空串返回0
3、其它情况按照10进制转换
4、.123形式返回0.123(按照小于0的小数对待)
|
static Float |
parseFloat(String numberStr,
Float defaultValue)
解析转换数字字符串为
Float 规则如下:
1、0开头的忽略开头的0
2、空串返回0
3、其它情况按照10进制转换
4、.123形式返回0.123(按照小于0的小数对待)
|
static int |
parseInt(String number)
解析转换数字字符串为int型数字,规则如下:
1、0x开头的视为16进制数字
2、0开头的忽略开头的0
3、其它情况按照10进制转换
4、空串返回0
5、.123形式返回0(按照小于0的小数对待)
6、123.56截取小数点之前的数字,忽略小数部分
|
static Integer |
parseInt(String numberStr,
Integer defaultValue)
解析转换数字字符串为
Integer 规则如下:
1、0x开头的视为16进制数字
2、0开头的忽略开头的0
3、其它情况按照10进制转换
4、空串返回0
5、.123形式返回0(按照小于0的小数对待)
6、123.56截取小数点之前的数字,忽略小数部分
7、解析失败返回默认值
|
static long |
parseLong(String number)
解析转换数字字符串为long型数字,规则如下:
1、0x开头的视为16进制数字
2、0开头的忽略开头的0
3、空串返回0
4、其它情况按照10进制转换
5、.123形式返回0(按照小于0的小数对待)
6、123.56截取小数点之前的数字,忽略小数部分
|
static Long |
parseLong(String numberStr,
Long defaultValue)
解析转换数字字符串为
Long 规则如下:
1、0x开头的视为16进制数字
2、0开头的忽略开头的0
3、其它情况按照10进制转换
4、空串返回0
5、.123形式返回0(按照小于0的小数对待)
6、123.56截取小数点之前的数字,忽略小数部分
7、解析失败返回默认值
|
static Number |
parseNumber(String numberStr)
将指定字符串转换为
Number 对象此方法不支持科学计数法 需要注意的是,在不同Locale下,数字的表示形式也是不同的,例如: 德国、荷兰、比利时、丹麦、意大利、罗马尼亚和欧洲大多地区使用`,`区分小数 也就是说,在这些国家地区,1.20表示120,而非1.2。 |
static Number |
parseNumber(String numberStr,
Number defaultValue)
将指定字符串转换为
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) |
static BigDecimal |
round(BigDecimal number,
int scale,
RoundingMode roundingMode) |
static BigDecimal |
round(double v,
int scale)
|
static BigDecimal |
round(double v,
int scale,
RoundingMode roundingMode)
保留固定位数小数
例如保留四位小数:123.456789 =》 123.4567 |
static BigDecimal |
round(String numberStr,
int scale) |
static BigDecimal |
round(String numberStr,
int scale,
RoundingMode roundingMode) |
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 String |
roundStr(double v,
int scale)
|
static String |
roundStr(double v,
int scale,
RoundingMode roundingMode)
保留固定位数小数
例如保留四位小数:123.456789 =》 123.4567 |
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,
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) |
static BigDecimal |
toBigDecimal(String numberStr) |
static BigInteger |
toBigInteger(Number number) |
static BigInteger |
toBigInteger(String number) |
static String |
toBinaryString(Number number)
获得数字对应的二进制字符串
|
static byte[] |
toBytes(int value) |
static double |
toDouble(Number value)
Number值转换为double
float强制转换存在精度问题,此方法避免精度丢失 |
static int |
toInt(byte[] bytes) |
static String |
toString(BigDecimal bigDecimal) |
static String |
toString(BigDecimal bigDecimal,
boolean isStripTrailingZeros) |
static String |
toString(Number number)
|
static String |
toString(Number number,
boolean isStripTrailingZeros)
|
static String |
toString(Number number,
String defaultValue)
数字转字符串
调用 Object.toString(),并去除尾小数点儿后多余的0 |
static byte[] |
toUnsignedByteArray(BigInteger value) |
static byte[] |
toUnsignedByteArray(int length,
BigInteger value) |
@Experimental public static double calculate(String expression)
calculate("(0*1--3)-5/-4-(3*(-2.13))") -》 10.64
expression - 数学表达式public static long floorDiv(long x,
long y)
public static int floorDiv(int x,
int y)
Math.floorDiv(int, int)public static long ceilDiv(long x,
long y)
public static int ceilDiv(int x,
int y)
x - 被除数y - 除数Math.floorDiv(int, int)public static BigDecimal pow(Number number, int n)
number - 底数n - 指数public static BigDecimal pow(BigDecimal number, int n)
number - 底数n - 指数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)
需要注意的是,在不同Locale下,数字的表示形式也是不同的,例如:
德国、荷兰、比利时、丹麦、意大利、罗马尼亚和欧洲大多地区使用`,`区分小数
也就是说,在这些国家地区,1.20表示120,而非1.2。
v1 - 被加数v2 - 加数public static BigDecimal add(Number... values)
需要注意的是,在不同Locale下,数字的表示形式也是不同的,例如:
德国、荷兰、比利时、丹麦、意大利、罗马尼亚和欧洲大多地区使用`,`区分小数
也就是说,在这些国家地区,1.20表示120,而非1.2。
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 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 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 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 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 div(BigDecimal v1, BigDecimal v2, int scale, RoundingMode roundingMode)
v1 - 被除数v2 - 除数scale - 精确度,如果为负值,取绝对值roundingMode - 保留小数的模式 RoundingModepublic static BigDecimal round(double v, int scale)
v - 值scale - 保留小数位数public static String roundStr(double v, int scale)
v - 值scale - 保留小数位数public static BigDecimal round(String numberStr, int scale)
public static BigDecimal round(BigDecimal number, int scale)
public static BigDecimal round(double v, int scale, RoundingMode roundingMode)
v - 值scale - 保留小数位数roundingMode - 保留小数的模式 RoundingModepublic static String roundStr(double v, int scale, RoundingMode roundingMode)
v - 值scale - 保留小数位数roundingMode - 保留小数的模式 RoundingModepublic static BigDecimal round(String numberStr, int scale, RoundingMode roundingMode)
public static BigDecimal round(BigDecimal number, int scale, RoundingMode roundingMode)
public static BigDecimal roundHalfEven(Number number, int scale)
public static BigDecimal roundHalfEven(BigDecimal value, int scale)
public static BigDecimal roundDown(Number number, int scale)
public static BigDecimal roundDown(BigDecimal value, int scale)
public static String decimalFormat(String pattern, double value)
pattern - 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。value - 值public static String decimalFormat(String pattern, long value)
pattern - 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。value - 值public static String decimalFormat(String pattern, Object value)
pattern - 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。value - 值,支持BigDecimal、BigInteger、Number等类型public static String decimalFormat(String pattern, Object value, RoundingMode roundingMode)
pattern - 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。value - 值,支持BigDecimal、BigInteger、Number等类型roundingMode - 保留小数的方式枚举public static String decimalFormatMoney(double value)
value - 金额public static String formatPercent(double number, int scale)
number - 值scale - 保留小数位数public static boolean isNumber(CharSequence str)
1、10进制 2、16进制数字(0x开头) 3、科学计数法形式(1234E3) 4、类型标识形式(123D) 5、正负数标识形式(+123、-234)
str - 字符串值public static boolean isInteger(String s)
s - Stringpublic static boolean isPrime(int n)
n - 数字public static int[] generateRandomNumber(int begin,
int end,
int size)
begin - 最小数字(包含该数)end - 最大数字(不包含该数)size - 指定产生随机数的个数public static int[] generateRandomNumber(int begin,
int end,
int size,
int[] seed)
begin - 最小数字(包含该数)end - 最大数字(不包含该数)size - 指定产生随机数的个数seed - 种子,用于取随机数的int池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 BigInteger factorial(BigInteger n)
n! = n * (n-1) * ... * 2 * 1
n - 阶乘起始public static BigInteger factorial(BigInteger start, BigInteger end)
factorial(start, end) = start * (start - 1) * ... * (end + 1)
start - 阶乘起始(包含)end - 阶乘结束,必须小于起始(不包括)public static long factorial(long start,
long end)
factorial(start, end) = start * (start - 1) * ... * (end + 1)
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 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 isGreater(BigDecimal bigNum1, BigDecimal bigNum2)
bigNum1 - 数字1bigNum2 - 数字2public static boolean isGreaterOrEqual(BigDecimal bigNum1, BigDecimal bigNum2)
bigNum1 - 数字1bigNum2 - 数字2public static boolean isLess(BigDecimal bigNum1, BigDecimal bigNum2)
bigNum1 - 数字1bigNum2 - 数字2public static boolean isLessOrEqual(BigDecimal bigNum1, BigDecimal bigNum2)
bigNum1 - 数字1bigNum2 - 数字2public static boolean isIn(BigDecimal value, BigDecimal minInclude, BigDecimal maxInclude)
value - 值minInclude - 最小值(包含)maxInclude - 最大值(包含)public static boolean equals(double num1,
double num2)
num1 - 数字1num2 - 数字2public static boolean equals(float num1,
float num2)
num1 - 数字1num2 - 数字2public static boolean equals(long num1,
long num2)
num1 - 数字1num2 - 数字2public static boolean equals(Number number1, Number number2)
trueBigDecimal需要特殊处理BigDecimal,则通过调用BigDecimal.compareTo(BigDecimal)方法来判断是否相等Object.equals(Object)比较number1 - 数字1number2 - 数字2Objects.equals(Object, Object)public static boolean equals(BigDecimal bigNum1, BigDecimal bigNum2)
bigNum1 - 数字1bigNum2 - 数字2public static boolean equals(char c1,
char c2,
boolean ignoreCase)
c1 - 字符1c2 - 字符2ignoreCase - 是否忽略大小写Chars.equals(char, char, boolean)public static <T extends Comparable<? super T>> T min(T[] numberArray)
T - 元素类型numberArray - 数字数组ObjectArrays.min(Comparable[])public static long min(long... numberArray)
numberArray - 数字数组PrimitiveArrays.min(long...)public static int min(int... numberArray)
numberArray - 数字数组PrimitiveArrays.min(int...)public static short min(short... numberArray)
numberArray - 数字数组PrimitiveArrays.min(short...)public static double min(double... numberArray)
numberArray - 数字数组PrimitiveArrays.min(double...)public static float min(float... numberArray)
numberArray - 数字数组PrimitiveArrays.min(float...)public static BigDecimal min(BigDecimal... numberArray)
numberArray - 数字数组ObjectArrays.min(Comparable[])public static <T extends Comparable<? super T>> T max(T[] numberArray)
T - 元素类型numberArray - 数字数组ObjectArrays.max(Comparable[])public static long max(long... numberArray)
numberArray - 数字数组PrimitiveArrays.max(long...)public static int max(int... numberArray)
numberArray - 数字数组PrimitiveArrays.max(int...)public static short max(short... numberArray)
numberArray - 数字数组PrimitiveArrays.max(short...)public static double max(double... numberArray)
numberArray - 数字数组PrimitiveArrays.max(double...)public static float max(float... numberArray)
numberArray - 数字数组PrimitiveArrays.max(float...)public static BigDecimal max(BigDecimal... numberArray)
numberArray - 数字数组ObjectArrays.max(Comparable[])public static String toBinaryString(Number number)
number - 数字public static String toString(Number number, String defaultValue)
Object.toString(),并去除尾小数点儿后多余的0number - A NumberdefaultValue - 如果number参数为null,返回此默认值public static String toString(Number number, boolean isStripTrailingZeros)
number - A NumberisStripTrailingZeros - 是否去除末尾多余0,例如5.0返回5public static String toString(BigDecimal bigDecimal)
public static String toString(BigDecimal bigDecimal, boolean isStripTrailingZeros)
public static BigDecimal toBigDecimal(Number number)
public static BigDecimal toBigDecimal(String numberStr)
public static BigInteger toBigInteger(Number number)
public static BigInteger toBigInteger(String number)
public static BigInteger newBigInteger(String str)
public static int parseInt(String number) throws NumberFormatException
1、0x开头的视为16进制数字 2、0开头的忽略开头的0 3、其它情况按照10进制转换 4、空串返回0 5、.123形式返回0(按照小于0的小数对待) 6、123.56截取小数点之前的数字,忽略小数部分
number - 数字,支持0x开头、0开头和普通十进制NumberFormatException - 数字格式异常public static long parseLong(String number)
1、0x开头的视为16进制数字 2、0开头的忽略开头的0 3、空串返回0 4、其它情况按照10进制转换 5、.123形式返回0(按照小于0的小数对待) 6、123.56截取小数点之前的数字,忽略小数部分
number - 数字,支持0x开头、0开头和普通十进制public static float parseFloat(String number)
1、0开头的忽略开头的0 2、空串返回0 3、其它情况按照10进制转换 4、.123形式返回0.123(按照小于0的小数对待)
number - 数字,支持0x开头、0开头和普通十进制public static double parseDouble(String number)
1、0开头的忽略开头的0 2、空串返回0 3、其它情况按照10进制转换 4、.123形式返回0.123(按照小于0的小数对待)
number - 数字,支持0x开头、0开头和普通十进制public static Number parseNumber(String numberStr) throws NumberFormatException
Number 对象
需要注意的是,在不同Locale下,数字的表示形式也是不同的,例如:
德国、荷兰、比利时、丹麦、意大利、罗马尼亚和欧洲大多地区使用`,`区分小数
也就是说,在这些国家地区,1.20表示120,而非1.2。
numberStr - Number字符串NumberFormatException - 包装了ParseException,当给定的数字字符串无法解析时抛出public static Integer parseInt(String numberStr, Integer defaultValue)
Integer 规则如下:
1、0x开头的视为16进制数字 2、0开头的忽略开头的0 3、其它情况按照10进制转换 4、空串返回0 5、.123形式返回0(按照小于0的小数对待) 6、123.56截取小数点之前的数字,忽略小数部分 7、解析失败返回默认值
numberStr - 数字字符串,支持0x开头、0开头和普通十进制defaultValue - 如果解析失败, 将返回defaultValue, 允许nullpublic static Long parseLong(String numberStr, Long defaultValue)
Long 规则如下:
1、0x开头的视为16进制数字 2、0开头的忽略开头的0 3、其它情况按照10进制转换 4、空串返回0 5、.123形式返回0(按照小于0的小数对待) 6、123.56截取小数点之前的数字,忽略小数部分 7、解析失败返回默认值
numberStr - 数字字符串,支持0x开头、0开头和普通十进制defaultValue - 如果解析失败, 将返回defaultValue, 允许nullpublic static Float parseFloat(String numberStr, Float defaultValue)
Float 规则如下:
1、0开头的忽略开头的0 2、空串返回0 3、其它情况按照10进制转换 4、.123形式返回0.123(按照小于0的小数对待)
numberStr - 数字字符串,支持0x开头、0开头和普通十进制defaultValue - 如果解析失败, 将返回defaultValue, 允许nullpublic static Double parseDouble(String numberStr, Double defaultValue)
Double 规则如下:
1、0开头的忽略开头的0 2、空串返回0 3、其它情况按照10进制转换 4、.123形式返回0.123(按照小于0的小数对待)
numberStr - 数字字符串,支持0x开头、0开头和普通十进制defaultValue - 如果解析失败, 将返回defaultValue, 允许nullpublic static Number parseNumber(String numberStr, Number defaultValue)
Number
此方法不支持科学计数法numberStr - Number字符串defaultValue - 如果解析失败, 将返回defaultValue, 允许nullpublic static byte[] toBytes(int value)
public static int toInt(byte[] bytes)
public static byte[] toUnsignedByteArray(BigInteger value)
public static byte[] toUnsignedByteArray(int length,
BigInteger value)
public static BigInteger fromUnsignedByteArray(byte[] buf)
public static BigInteger fromUnsignedByteArray(byte[] buf, int off, int length)
public static double toDouble(Number value)
value - 被转换的float值public 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 boolean isPowerOfTwo(long n)
n - 待验证的整数public static boolean isValidNumber(Number number)
number - 被检查类型public static boolean isValid(double number)
number - 被检查doublepublic static boolean isValid(float number)
number - 被检查doublepublic static boolean isOdd(int num)
num - 被判断的数值public static boolean isEven(int num)
num - 被判断的数值Copyright © 2025 fossc. All rights reserved.