类 Arith
- java.lang.Object
-
- me.codeplayer.util.Arith
-
public class Arith extends Object
用于商业运算的常用计算工具类- 作者:
- Ready
-
-
字段概要
字段 修饰符和类型 字段 说明 static BigDecimalHANDRED表示数值 100(一百) 的BigDecimalstatic BigDecimalHANDRED_MILLION表示数值 100 000 000(一亿) 的BigDecimalstatic BigDecimalMYRIAD表示数值 10 000(一万) 的BigDecimalstatic BigDecimalONE表示数值 1(一) 的BigDecimalstatic BigDecimalTEN表示数值 10(一十) 的BigDecimalstatic BigDecimalTHOUSAND表示数值 1000(一千) 的BigDecimalprotected BigDecimalvaluestatic BigDecimalZERO表示数值 0(零) 的BigDecimal
-
方法概要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 说明 Arithadd(double d)商业加法运算static doubleadd(double a, double b)商业加法运算Arithadd(long d)商业加法运算Arithadd(String d)商业加法运算Arithadd(BigDecimal d)商业加法运算bytebyteValue()转换为byte值static booleancanDivideExactly(BigDecimal d, BigDecimal divisor)检测数值d能否被divisor整除(即:余数为0)Arithceil()将当前BigDecimal进行向上舍入到相邻的整数static longceil(double d)向上取整,返回大于或等于指定数值的最小整数static intcompareTo(BigDecimal a, double b)判断两个数值a和b的大小static intcompareTo(BigDecimal a, long b)判断两个数值a和b的大小static intcompareTo(BigDecimal a, String b)判断两个数值a和b的大小static intcompareTo(BigDecimal a, BigDecimal b)判断两个数值a和b的大小Arithdivide(double d)商业除法运算static doubledivide(double a, double b, int scale)商业除法运算(四舍五入)Arithdivide(double d, int scale, RoundingMode roundingMode)商业除法运算Arithdivide(long d)商业除法运算Arithdivide(long d, int scale, RoundingMode roundingMode)商业除法运算Arithdivide(String d)商业除法运算Arithdivide(String d, int scale, RoundingMode roundingMode)商业除法运算Arithdivide(BigDecimal d)商业除法运算Arithdivide(BigDecimal d, int scale, RoundingMode roundingMode)商业除法运算ArithdivideRound(double d, int scale)以四舍五入的舍入方式进行商业除法运算ArithdivideRound(long d, int scale)以四舍五入的舍入方式进行商业除法运算ArithdivideRound(String d, int scale)以四舍五入的舍入方式进行商业除法运算ArithdivideRound(BigDecimal d, int scale)以四舍五入的舍入方式进行商业除法运算doubledoubleValue()转换为double值doubledoubleValue(int scale)转换为四舍五入精确到指定小数位的double值static doubleeven(double d, int scale)以RoundingMode.HALF_EVEN的方式使指定小数精确到指定的小数位数floatfloatValue()转换为float值Arithfloor()将当前BigDecimal进行向下舍去到相邻的整数static longfloor(double d)向下取整,返回小于或等于指定数值的最大整数intintValue()转换为int值static booleanisIntegral(BigDecimal d)检测指定的BigDecimal是否为整数值longlongValue()转换为long值Arithminus(double d)商业减法运算static doubleminus(double a, double b)商业减法运算Arithminus(long d)商业减法运算Arithminus(String d)商业减法运算Arithminus(BigDecimal d)商业减法运算Arithmultiply(double d)商业乘法运算static doublemultiply(double a, double b)商业乘法运算static doublemultiply(double a, double b, int scale)商业乘法运算(四舍五入)static doublemultiply(double a, double b, int scale, RoundingMode roundingMode)商业乘法运算static doublemultiply(double a, double b, long precision)商业乘法运算(四舍五入)
注意:此方法的有效位数包含整数部分在内
将precision设为long类型只是为了重载的需要Arithmultiply(long d)商业乘法运算Arithmultiply(String d)商业乘法运算Arithmultiply(BigDecimal d)商业乘法运算static doubleround(double d, int scale)以四舍五入(RoundingMode.HALF_UP)的方式使指定小数精确到指定的小数位数Arithround(int newScale)设置四舍五入的精度(即精确到的小数位数)static doubleroundFast(double value, int newScale)设置四舍五入的精度(即精确到的小数位数)
注意:该方法底层直接根据需求自行计算,常规情况下比round(int)要快 10+倍,但目前尚处于实验性质(不过一般基本上没什么问题)static doublescale(double d, int scale, RoundingMode mode)以指定的舍入方式使指定小数精确到指定的小数位数ArithsetScale(int newScale, RoundingMode roundingMode)设置精度(即精确到的小数位数)shortshortValue()转换为short值BigDecimaltoBigDecimal()转换为BigDecimalstatic BigDecimaltoBigDecimal(int n)将指定的整数转换为对应的 BigDecimal(内部对于常用数值进行缓存处理)BigIntegertoBigInteger()转换为BigIntegerStringtoChineseString(boolean ignoreFractionalPart, boolean upperCase)输出中文形式的数值字符串,例如:"135000000"->"一亿三千五百万"StringtoChineseUpperCase(boolean ignoreFractionalPart)输出大写中文形式的数值字符串,例如:"135000000"->"壹亿叁千伍佰万"StringtoMoneyUpperCase()输出大写中文形式的用于金额(人民币)显示的数值字符串,例如:"135000000"->"壹亿叁千伍佰万元整"StringtoString()输出数值字符串StringtoString(int scale)输出以四舍五入模式保留指定小数位精度的数值字符串static doubletruncate(double d, int scale, RoundingMode mode)以指定舍入方式使指定小数精确到指定的小数位数
-
-
-
字段详细资料
-
ZERO
public static final BigDecimal ZERO
表示数值 0(零) 的BigDecimal
-
ONE
public static final BigDecimal ONE
表示数值 1(一) 的BigDecimal
-
TEN
public static final BigDecimal TEN
表示数值 10(一十) 的BigDecimal
-
HANDRED
public static final BigDecimal HANDRED
表示数值 100(一百) 的BigDecimal
-
THOUSAND
public static final BigDecimal THOUSAND
表示数值 1000(一千) 的BigDecimal
-
MYRIAD
public static final BigDecimal MYRIAD
表示数值 10 000(一万) 的BigDecimal
-
HANDRED_MILLION
public static final BigDecimal HANDRED_MILLION
表示数值 100 000 000(一亿) 的BigDecimal
-
value
protected BigDecimal value
-
-
构造器详细资料
-
Arith
public Arith(double d)
构造一个为指定值的商业计算数
-
Arith
public Arith(String d)
构造一个为指定值(字符串形式)的商业计算数
-
Arith
public Arith(BigDecimal d)
构造一个为指定double值的商业计算数
-
Arith
public Arith(long d)
构造一个指定long值的商业计算数
-
Arith
public Arith(int d)
构造一个指定int值的商业计算数
-
Arith
public Arith(boolean d)
构造一个指定boolean值的商业计算数。 boolean值true=1,false=0
-
Arith
public Arith(Object d)
构造一个指定Object值的商业计算数
-
Arith
public Arith()
构造一个默认值为0的商业计算数
-
-
方法详细资料
-
add
public Arith add(BigDecimal d)
商业加法运算- 参数:
d- 指定的加数
-
add
public Arith add(double d)
商业加法运算- 参数:
d- 指定的加数
-
add
public Arith add(long d)
商业加法运算- 参数:
d- 指定的加数
-
minus
public Arith minus(BigDecimal d)
商业减法运算- 参数:
d- 指定的减数
-
minus
public Arith minus(double d)
商业减法运算- 参数:
d- 指定的减数
-
minus
public Arith minus(long d)
商业减法运算- 参数:
d- 指定的减数
-
multiply
public Arith multiply(BigDecimal d) throws ArithmeticException
商业乘法运算- 参数:
d- 指定的乘数- 抛出:
ArithmeticException- 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(BigDecimal, int, RoundingMode)替代
-
multiply
public Arith multiply(double d)
商业乘法运算- 参数:
d- 指定的乘数
-
multiply
public Arith multiply(long d)
商业乘法运算- 参数:
d- 指定的乘数
-
divide
public Arith divide(BigDecimal d) throws ArithmeticException
商业除法运算- 参数:
d- 指定的除数- 抛出:
ArithmeticException- 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(BigDecimal, int, RoundingMode)替代
-
divide
public Arith divide(String d) throws ArithmeticException
商业除法运算- 参数:
d- 指定的除数- 抛出:
ArithmeticException- 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(String, int, RoundingMode)替代
-
divide
public Arith divide(double d)
商业除法运算- 参数:
d- 指定的除数- 抛出:
ArithmeticException- 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(double, int, RoundingMode)替代
-
divide
public Arith divide(long d)
商业除法运算- 参数:
d- 指定的除数- 抛出:
ArithmeticException- 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(long, int, RoundingMode)替代
-
divide
public Arith divide(BigDecimal d, int scale, RoundingMode roundingMode)
商业除法运算- 参数:
d- 指定的除数scale- 指定的精确位数roundingMode- 设置应用的舍入模式(四舍五入、向上舍入、向下舍去等)
-
divide
public Arith divide(String d, int scale, RoundingMode roundingMode)
商业除法运算- 参数:
d- 指定的除数scale- 指定的精确位数roundingMode- 设置应用的舍入模式(四舍五入、向上舍入、向下舍去等)
-
divide
public Arith divide(double d, int scale, RoundingMode roundingMode)
商业除法运算- 参数:
d- 指定的除数scale- 指定的精确位数roundingMode- 设置应用的舍入模式(四舍五入、向上舍入、向下舍去等)
-
divide
public Arith divide(long d, int scale, RoundingMode roundingMode)
商业除法运算- 参数:
d- 指定的除数scale- 指定的精确位数roundingMode- 设置应用的舍入模式(四舍五入、向上舍入、向下舍去等)
-
divideRound
public Arith divideRound(BigDecimal d, int scale)
以四舍五入的舍入方式进行商业除法运算- 参数:
d- 指定的除数scale- 指定的精确位数
-
divideRound
public Arith divideRound(String d, int scale)
以四舍五入的舍入方式进行商业除法运算- 参数:
d- 指定的除数scale- 指定的精确位数
-
divideRound
public Arith divideRound(double d, int scale)
以四舍五入的舍入方式进行商业除法运算- 参数:
d- 指定的除数scale- 指定的精确位数
-
divideRound
public Arith divideRound(long d, int scale)
以四舍五入的舍入方式进行商业除法运算- 参数:
d- 指定的除数scale- 指定的精确位数
-
setScale
public Arith setScale(int newScale, RoundingMode roundingMode)
设置精度(即精确到的小数位数)- 参数:
newScale- 指定的精确位数roundingMode- 设置应用的舍入模式(四舍五入、向上舍入、向下舍去等)
-
round
public Arith round(int newScale)
设置四舍五入的精度(即精确到的小数位数)- 参数:
newScale- 指定的精确位数
-
roundFast
public static double roundFast(double value, int newScale)设置四舍五入的精度(即精确到的小数位数)
注意:该方法底层直接根据需求自行计算,常规情况下比round(int)要快 10+倍,但目前尚处于实验性质(不过一般基本上没什么问题)- 参数:
value- 指定的数值newScale- 指定的精确位数
-
ceil
public Arith ceil()
将当前BigDecimal进行向上舍入到相邻的整数
-
floor
public Arith floor()
将当前BigDecimal进行向下舍去到相邻的整数
-
toBigDecimal
public BigDecimal toBigDecimal()
转换为BigDecimal
-
toBigInteger
public BigInteger toBigInteger()
转换为BigInteger
-
doubleValue
public double doubleValue()
转换为double值
-
doubleValue
public double doubleValue(int scale)
转换为四舍五入精确到指定小数位的double值
-
intValue
public int intValue()
转换为int值
-
longValue
public long longValue()
转换为long值
-
floatValue
public float floatValue()
转换为float值
-
byteValue
public byte byteValue()
转换为byte值
-
shortValue
public short shortValue()
转换为short值
-
add
public static double add(double a, double b)商业加法运算- 参数:
a- 加数1b- 加数2
-
minus
public static double minus(double a, double b)商业减法运算- 参数:
a- 被减数b- 减数
-
multiply
public static double multiply(double a, double b)商业乘法运算- 参数:
a- 乘数1b- 乘数2
-
multiply
public static double multiply(double a, double b, int scale, RoundingMode roundingMode)商业乘法运算- 参数:
a- 乘数1b- 乘数2scale- 小数部分的精确位数
-
multiply
public static double multiply(double a, double b, int scale)商业乘法运算(四舍五入)- 参数:
a- 乘数1b- 乘数2scale- 小数部分的精确位数
-
multiply
public static double multiply(double a, double b, long precision)商业乘法运算(四舍五入)
注意:此方法的有效位数包含整数部分在内
将precision设为long类型只是为了重载的需要- 参数:
a- 乘数1b- 乘数2precision- 包含整数部分的有效位数
-
divide
public static double divide(double a, double b, int scale)商业除法运算(四舍五入)- 参数:
a- 被除数b- 除数scale- 小数精确度位数
-
round
public static double round(double d, int scale)以四舍五入(RoundingMode.HALF_UP)的方式使指定小数精确到指定的小数位数- 参数:
d- 指定的小数scale- 指定的小数精确位数
-
even
public static double even(double d, int scale)以RoundingMode.HALF_EVEN的方式使指定小数精确到指定的小数位数- 参数:
d- 指定的小数scale- 指定的小数精确位数
-
scale
public static double scale(double d, int scale, RoundingMode mode)以指定的舍入方式使指定小数精确到指定的小数位数- 参数:
d- 指定的小数scale- 指定的小数精确位数
-
ceil
public static long ceil(double d)
向上取整,返回大于或等于指定数值的最小整数- 参数:
d- 指定的数值
-
floor
public static long floor(double d)
向下取整,返回小于或等于指定数值的最大整数- 参数:
d- 指定的数值
-
truncate
public static double truncate(double d, int scale, RoundingMode mode)以指定舍入方式使指定小数精确到指定的小数位数- 参数:
d- 指定的小数scale- 指定的小数精确位数mode- 指定的舍入模式
-
compareTo
public static int compareTo(BigDecimal a, BigDecimal b)
判断两个数值a和b的大小- 返回:
- 如果:
- a > b ,则返回 1
- a == b ,则返回 0
- a < b ,则返回 -1
-
compareTo
public static int compareTo(BigDecimal a, double b)
判断两个数值a和b的大小- 返回:
- 如果:
- a > b ,则返回 1
- a == b ,则返回 0
- a < b ,则返回 -1
-
compareTo
public static int compareTo(BigDecimal a, long b)
判断两个数值a和b的大小- 返回:
- 如果:
- a > b ,则返回 1
- a == b ,则返回 0
- a < b ,则返回 -1
-
compareTo
public static int compareTo(BigDecimal a, String b)
判断两个数值a和b的大小- 返回:
- 如果:
- a > b ,则返回 1
- a == b ,则返回 0
- a < b ,则返回 -1
-
isIntegral
public static boolean isIntegral(BigDecimal d)
检测指定的BigDecimal是否为整数值
-
canDivideExactly
public static boolean canDivideExactly(BigDecimal d, BigDecimal divisor)
检测数值d能否被divisor整除(即:余数为0)- 参数:
d- 被除数divisor- 除数- 从以下版本开始:
- 1.0
-
toString
public String toString(int scale)
输出以四舍五入模式保留指定小数位精度的数值字符串
-
toChineseString
public String toChineseString(boolean ignoreFractionalPart, boolean upperCase)
输出中文形式的数值字符串,例如:"135000000"->"一亿三千五百万"- 参数:
ignoreFractionalPart- 是否忽略小数部分
-
toChineseUpperCase
public String toChineseUpperCase(boolean ignoreFractionalPart)
输出大写中文形式的数值字符串,例如:"135000000"->"壹亿叁千伍佰万"- 参数:
ignoreFractionalPart- 是否忽略小数部分
-
toMoneyUpperCase
public String toMoneyUpperCase()
输出大写中文形式的用于金额(人民币)显示的数值字符串,例如:"135000000"->"壹亿叁千伍佰万元整"
-
toBigDecimal
public static BigDecimal toBigDecimal(int n)
将指定的整数转换为对应的 BigDecimal(内部对于常用数值进行缓存处理)- 从以下版本开始:
- 2.8
-
-