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