类 Arith


  • public class Arith
    extends Object
    用于商业运算的常用计算工具类
    作者:
    Ready
    • 字段详细资料

      • 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
    • 构造器详细资料

      • 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​(String 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​(String d)
        商业减法运算
        参数:
        d - 指定的减数
      • minus

        public Arith minus​(double d)
        商业减法运算
        参数:
        d - 指定的减数
      • minus

        public Arith minus​(long d)
        商业减法运算
        参数:
        d - 指定的减数
      • multiply

        public Arith multiply​(String d)
        商业乘法运算
        参数:
        d - 指定的乘数
      • multiply

        public Arith multiply​(double d)
        商业乘法运算
        参数:
        d - 指定的乘数
      • multiply

        public Arith multiply​(long d)
        商业乘法运算
        参数:
        d - 指定的乘数
      • 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 - 加数1
        b - 加数2
      • minus

        public static double minus​(double a,
                                   double b)
        商业减法运算
        参数:
        a - 被减数
        b - 减数
      • multiply

        public static double multiply​(double a,
                                      double b)
        商业乘法运算
        参数:
        a - 乘数1
        b - 乘数2
      • multiply

        public static double multiply​(double a,
                                      double b,
                                      int scale,
                                      RoundingMode roundingMode)
        商业乘法运算
        参数:
        a - 乘数1
        b - 乘数2
        scale - 小数部分的精确位数
      • multiply

        public static double multiply​(double a,
                                      double b,
                                      int scale)
        商业乘法运算(四舍五入)
        参数:
        a - 乘数1
        b - 乘数2
        scale - 小数部分的精确位数
      • multiply

        public static double multiply​(double a,
                                      double b,
                                      long precision)
        商业乘法运算(四舍五入)
        注意:此方法的有效位数包含整数部分在内
        将precision设为long类型只是为了重载的需要
        参数:
        a - 乘数1
        b - 乘数2
        precision - 包含整数部分的有效位数
      • 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