public class NumberUtils extends Object
| 构造器和说明 |
|---|
NumberUtils() |
| 限定符和类型 | 方法和说明 |
|---|---|
static boolean |
equals(BigDecimal bigNum1,
BigDecimal bigNum2)
|
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 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将返回false |
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 BigDecimal |
round(BigDecimal number,
int scale)
|
static BigDecimal |
round(BigDecimal number,
int scale,
RoundingMode roundingMode)
保留固定位数小数
例如保留四位小数:123.456789 =》 123.4567 |
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)
保留固定位数小数
例如保留四位小数: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 String |
roundStr(double v,
int scale)
|
static String |
roundStr(double v,
int scale,
RoundingMode roundingMode)
保留固定位数小数
例如保留四位小数:123.456789 =》 123.4567 |
static String |
roundStr(String numberStr,
int scale)
|
static String |
roundStr(String numberStr,
int scale,
RoundingMode roundingMode)
保留固定位数小数
例如保留四位小数:123.456789 =》 123.4567 |
static BigDecimal |
toBigDecimal(Number number)
|
static BigDecimal |
toBigDecimal(String numberStr)
数字转
BigDecimalnull或""或空白符转换为0 |
static BigInteger |
toBigInteger(Number number)
数字转
BigIntegernull转换为0 |
static BigInteger |
toBigInteger(String number)
数字转
BigIntegernull或""或空白符转换为0 |
public static boolean isValidNumber(Number number)
number - 被检查类型public static boolean isValid(double number)
number - 被检查doublepublic static boolean isValid(float number)
number - 被检查doublepublic 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 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)
numberStr - 数字值的字符串表现形式scale - 保留小数位数public static BigDecimal round(BigDecimal number, int scale)
number - 数字值scale - 保留小数位数public static String roundStr(String numberStr, int scale)
numberStr - 数字值的字符串表现形式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)
numberStr - 数字值的字符串表现形式scale - 保留小数位数,如果传入小于0,则默认0roundingMode - 保留小数的模式 RoundingMode,如果传入null则默认四舍五入public static BigDecimal round(BigDecimal number, int scale, RoundingMode roundingMode)
number - 数字值scale - 保留小数位数,如果传入小于0,则默认0roundingMode - 保留小数的模式 RoundingMode,如果传入null则默认四舍五入public static String roundStr(String numberStr, int scale, RoundingMode roundingMode)
numberStr - 数字值的字符串表现形式scale - 保留小数位数roundingMode - 保留小数的模式 RoundingModepublic 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 BigDecimal toBigDecimal(Number number)
number - 数字BigDecimalpublic static BigDecimal toBigDecimal(String numberStr)
BigDecimalnumberStr - 数字字符串BigDecimalpublic static BigInteger toBigInteger(Number number)
BigIntegernumber - 数字BigIntegerpublic static BigInteger toBigInteger(String number)
BigIntegernumber - 数字字符串BigIntegerpublic 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, 允许nullCopyright © 2024. All rights reserved.