Deprecated.
需要注意的是,在不同Locale下,数字的表示形式也是不同的,例如:
德国、荷兰、比利时、丹麦、意大利、罗马尼亚和欧洲大多地区使用`,`区分小数
也就是说,在这些国家地区,1.20表示120,而非1.2。
Parameters:
v1
- 被加数
v2
- 加数
Returns:
需要注意的是,在不同Locale下,数字的表示形式也是不同的,例如:
德国、荷兰、比利时、丹麦、意大利、罗马尼亚和欧洲大多地区使用`,`区分小数
也就是说,在这些国家地区,1.20表示120,而非1.2。
Parameters:
values
- 多个被加值
Returns:
Since:
4.0.0
public static double div(float v1,
double v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
Parameters:
v1
- 被除数
v2
- 除数
Returns:
两个参数的商
public static double div(double v1,
float v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
Parameters:
v1
- 被除数
v2
- 除数
Returns:
两个参数的商
public static double div(double v1,
double v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
Parameters:
v1
- 被除数
v2
- 除数
Returns:
两个参数的商
public static double div(Double v1,
Double v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
Parameters:
v1
- 被除数
v2
- 除数
Returns:
两个参数的商
public static BigDecimal div(Number v1,
Number v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
Parameters:
v1
- 被除数
v2
- 除数
Returns:
两个参数的商
Since:
3.1.0
public static BigDecimal div(String v1,
String v2)
提供(相对)精确的除法运算,当发生除不尽的情况的时候,精确到小数点后10位,后面的四舍五入
Parameters:
v1
- 被除数
v2
- 除数
Returns:
两个参数的商
public static int ceilDiv(int v1,
int v2)
补充Math.ceilDiv() JDK8中添加了和Math.floorDiv()但却没有ceilDiv()
Parameters:
v1
- 被除数
v2
- 除数
Returns:
两个参数的商
Since:
5.3.3
public static BigDecimal round(String numberStr,
int scale,
RoundingMode roundingMode)
保留固定位数小数
例如保留四位小数:123.456789 =》 123.4567
Parameters:
numberStr
- 数字值的字符串表现形式
scale
- 保留小数位数,如果传入小于0,则默认0
roundingMode
- 保留小数的模式
RoundingMode
,如果传入null则默认四舍五入
Returns:
public static BigDecimal round(BigDecimal number,
int scale,
RoundingMode roundingMode)
保留固定位数小数
例如保留四位小数:123.456789 =》 123.4567
Parameters:
number
- 数字值
scale
- 保留小数位数,如果传入小于0,则默认0
roundingMode
- 保留小数的模式
RoundingMode
,如果传入null则默认四舍五入
Returns:
Parameters:
pattern
- 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。
0 =》 取一位整数
0.00 =》 取一位整数和两位小数
00.000 =》 取两位整数和三位小数
# =》 取所有整数部分
#.##% =》 以百分比方式计数,并取两位小数
#.#####E0 =》 显示为科学计数法,并取五位小数
,### =》 每三位以逗号进行分隔,例如:299,792,458
光速大小为每秒,###米 =》 将格式嵌入文本
value
- 值
Returns:
格式化后的值
Parameters:
pattern
- 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。
0 =》 取一位整数
0.00 =》 取一位整数和两位小数
00.000 =》 取两位整数和三位小数
# =》 取所有整数部分
#.##% =》 以百分比方式计数,并取两位小数
#.#####E0 =》 显示为科学计数法,并取五位小数
,### =》 每三位以逗号进行分隔,例如:299,792,458
光速大小为每秒,###米 =》 将格式嵌入文本
value
- 值
Returns:
格式化后的值
Since:
3.0.5
Parameters:
pattern
- 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。
0 =》 取一位整数
0.00 =》 取一位整数和两位小数
00.000 =》 取两位整数和三位小数
# =》 取所有整数部分
#.##% =》 以百分比方式计数,并取两位小数
#.#####E0 =》 显示为科学计数法,并取五位小数
,### =》 每三位以逗号进行分隔,例如:299,792,458
光速大小为每秒,###米 =》 将格式嵌入文本
value
- 值,支持BigDecimal、BigInteger、Number等类型
Returns:
格式化后的值
Since:
5.1.6
public static String decimalFormat(String pattern,
Object value,
RoundingMode roundingMode)
Parameters:
pattern
- 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。
0 =》 取一位整数
0.00 =》 取一位整数和两位小数
00.000 =》 取两位整数和三位小数
# =》 取所有整数部分
#.##% =》 以百分比方式计数,并取两位小数
#.#####E0 =》 显示为科学计数法,并取五位小数
,### =》 每三位以逗号进行分隔,例如:299,792,458
光速大小为每秒,###米 =》 将格式嵌入文本
value
- 值,支持BigDecimal、BigInteger、Number等类型
roundingMode
- 保留小数的方式枚举
Returns:
格式化后的值
Since:
5.6.5
decimalFormatMoney
public static String decimalFormatMoney(double value)
格式化金额输出,每三位用逗号分隔
Parameters:
value
- 金额
Returns:
格式化后的值
Since:
3.0.9
public static boolean isPrimes(int n)
是否是质数(素数)
质数表的质数又称素数。指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
Parameters:
n
- 数字
Returns:
是否是质数
public static Collection<Integer> appendRange(int start,
int stop,
Collection<Integer> values)
将给定范围内的整数添加到已有集合中,步进为1
Parameters:
start
- 开始(包含)
stop
- 结束(包含)
values
- 集合
Returns:
public static boolean isGreater(BigDecimal bigNum1,
BigDecimal bigNum2)
比较大小,参数1 > 参数2 返回true
Parameters:
bigNum1
- 数字1
bigNum2
- 数字2
Returns:
Since:
3.0.9
isGreaterOrEqual
public static boolean isGreaterOrEqual(BigDecimal bigNum1,
BigDecimal bigNum2)
比较大小,参数1 >= 参数2 返回true
Parameters:
bigNum1
- 数字1
bigNum2
- 数字2
Returns:
是否大于等于
Since:
3, 0.9
public static boolean isLess(BigDecimal bigNum1,
BigDecimal bigNum2)
比较大小,参数1 < 参数2 返回true
Parameters:
bigNum1
- 数字1
bigNum2
- 数字2
Returns:
Since:
3, 0.9
isLessOrEqual
public static boolean isLessOrEqual(BigDecimal bigNum1,
BigDecimal bigNum2)
比较大小,参数1<=参数2 返回true
Parameters:
bigNum1
- 数字1
bigNum2
- 数字2
Returns:
是否小于等于
Since:
3, 0.9
public static boolean isIn(BigDecimal value,
BigDecimal minInclude,
BigDecimal maxInclude)
检查值是否在指定范围内
Parameters:
value
- 值
minInclude
- 最小值(包含)
maxInclude
- 最大值(包含)
Returns:
经过检查后的值
Since:
5.8.5
Parameters:
num1
- 数字1
num2
- 数字2
Returns:
Since:
5.4.2
比较数字值是否相等,相等返回
true
需要注意的是
BigDecimal
需要特殊处理
BigDecimal使用compareTo方式判断,因为使用equals方法也判断小数位数,如2.0和2.00就不相等,
此方法判断值相等时忽略精度的,即0.00 == 0
如果用户提供两个Number都是
BigDecimal
,则通过调用
BigDecimal.compareTo(BigDecimal)
方法来判断是否相等
其他情况调用
Object.equals(Object)
比较
Parameters:
number1
- 数字1
number2
- 数字2
Returns:
Since:
5.8.17
See Also:
Objects.equals(Object, Object)
Parameters:
bigNum1
- 数字1
bigNum2
- 数字2
Returns:
public static String toStr(Number number)
Parameters:
number
- A Number
Returns:
A String.
boolean isStripTrailingZeros)
Parameters:
number
- A Number
isStripTrailingZeros
- 是否去除末尾多余0,例如5.0返回5
Returns:
A String.
public static String toStr(BigDecimal bigDecimal)
Parameters:
bigDecimal
- A
BigDecimal
Returns:
A String.
Since:
5.4.6
public static String toStr(BigDecimal bigDecimal,
boolean isStripTrailingZeros)
Parameters:
bigDecimal
- A
BigDecimal
isStripTrailingZeros
- 是否去除末尾多余0,例如5.0返回5
Returns:
A String.
Since:
5.4.6
public static BigDecimal toBigDecimal(Number number)
数字转
BigDecimal
Float、Double等有精度问题,转换为字符串后再转换
null转换为0
Parameters:
number
- 数字
Returns:
BigDecimal
Since:
4.0.9
@Deprecated
public static BigDecimal null2Zero(BigDecimal decimal)
Deprecated.
Parameters:
decimal
-
BigDecimal
,可以为
null
Returns:
BigDecimal
参数为空时返回0的值
Since:
3.0.9
nullToZero
public static BigDecimal nullToZero(BigDecimal number)
如果给定值为
null
,返回0,否则返回原值
Parameters:
number
- 值
Returns:
0或非0值
nullToZero
public static BigInteger nullToZero(BigInteger number)
如果给定值为
null
,返回0,否则返回原值
Parameters:
number
- 值
Returns:
0或非0值
newBigInteger
public static BigInteger newBigInteger(String str)
创建
BigInteger
,支持16进制、10进制和8进制,如果传入空白串返回null
from Apache Common Lang
Parameters:
str
- 数字字符串
Returns:
BigInteger
Since:
3.2.1
boolean isPlusOneWhenHasRem)
把给定的总数平均分成N份,返回每份的个数
如果isPlusOneWhenHasRem为true,则当除以分数有余数时每份+1,否则丢弃余数部分
Parameters:
total
- 总数
partCount
- 份数
isPlusOneWhenHasRem
- 在有余数时是否每份+1
Returns:
每份的个数
Since:
4.0.7
public static int parseInt(String number)
throws NumberFormatException
解析转换数字字符串为int型数字,规则如下:
1、0x开头的视为16进制数字
2、0开头的忽略开头的0
3、其它情况按照10进制转换
4、空串返回0
5、.123形式返回0(按照小于0的小数对待)
6、123.56截取小数点之前的数字,忽略小数部分
Parameters:
number
- 数字,支持0x开头、0开头和普通十进制
Returns:
Throws:
NumberFormatException
- 数字格式异常
Since:
4.1.4
parseNumber
public static Number parseNumber(String numberStr)
throws NumberFormatException
将指定字符串转换为
Number
对象
此方法不支持科学计数法
需要注意的是,在不同Locale下,数字的表示形式也是不同的,例如:
德国、荷兰、比利时、丹麦、意大利、罗马尼亚和欧洲大多地区使用`,`区分小数
也就是说,在这些国家地区,1.20表示120,而非1.2。
Parameters:
numberStr
- Number字符串
Returns:
Number对象
Throws:
NumberFormatException
- 包装了
ParseException
,当给定的数字字符串无法解析时抛出
Since:
4.1.15
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、解析失败返回默认值
Parameters:
numberStr
- 数字字符串,支持0x开头、0开头和普通十进制
defaultValue
- 如果解析失败, 将返回defaultValue, 允许null
Returns:
Integer
public 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、解析失败返回默认值
Parameters:
numberStr
- 数字字符串,支持0x开头、0开头和普通十进制
defaultValue
- 如果解析失败, 将返回defaultValue, 允许null
Returns:
public static Float parseFloat(String numberStr,
Float defaultValue)
解析转换数字字符串为
Float
规则如下:
1、0开头的忽略开头的0
2、空串返回0
3、其它情况按照10进制转换
4、.123形式返回0.123(按照小于0的小数对待)
Parameters:
numberStr
- 数字字符串,支持0x开头、0开头和普通十进制
defaultValue
- 如果解析失败, 将返回defaultValue, 允许null
Returns:
Float
public static Double parseDouble(String numberStr,
Double defaultValue)
解析转换数字字符串为
Double
规则如下:
1、0开头的忽略开头的0
2、空串返回0
3、其它情况按照10进制转换
4、.123形式返回0.123(按照小于0的小数对待)
Parameters:
numberStr
- 数字字符串,支持0x开头、0开头和普通十进制
defaultValue
- 如果解析失败, 将返回defaultValue, 允许null
Returns:
Double
public static Number parseNumber(String numberStr,
Number defaultValue)
Parameters:
numberStr
- Number字符串
defaultValue
- 如果解析失败, 将返回defaultValue, 允许null
Returns:
Number对象
public static byte[] toBytes(int value)
Parameters:
value
- 值
Returns:
byte数组
Since:
4.4.5
public static int toInt(byte[] bytes)
Parameters:
bytes
- byte数组
Returns:
Since:
4.4.5
toUnsignedByteArray
public static byte[] toUnsignedByteArray(BigInteger value)
以无符号字节数组的形式返回传入值。
Parameters:
value
- 需要转换的值
Returns:
无符号bytes
Since:
4.5.0
toUnsignedByteArray
public static byte[] toUnsignedByteArray(int length,
BigInteger value)
以无符号字节数组的形式返回传入值。
Parameters:
length
- bytes长度
value
- 需要转换的值
Returns:
无符号bytes
Since:
4.5.0
fromUnsignedByteArray
public static BigInteger fromUnsignedByteArray(byte[] buf)
Parameters:
buf
- buf 无符号bytes
Returns:
BigInteger
Since:
4.5.0
fromUnsignedByteArray
public static BigInteger fromUnsignedByteArray(byte[] buf,
int off,
int length)
Parameters:
buf
- 无符号bytes
off
- 起始位置
length
- 长度
Returns:
BigInteger
public static boolean isValidNumber(Number number)
检查是否为有效的数字
检查Double和Float是否为无限大,或者Not a Number
非数字类型和Null将返回false
Parameters:
number
- 被检查类型
Returns:
检查结果,非数字类型和Null将返回false
Since:
4.6.7