类 Arith


  • public class Arith
    extends java.lang.Object
    用于商业运算的常用计算工具类
    作者:
    Ready
    • 字段概要

      字段 
      修饰符和类型 字段 说明
      static java.math.BigDecimal HANDRED
      表示数值 100(一百) 的BigDecimal
      static java.math.BigDecimal HANDRED_MILLION
      表示数值 100 000 000(一亿) 的BigDecimal
      static java.math.BigDecimal MYRIAD
      表示数值 10 000(一万) 的BigDecimal
      static java.math.BigDecimal ONE
      表示数值 1(一) 的BigDecimal
      static java.math.BigDecimal TEN
      表示数值 10(一十) 的BigDecimal
      static java.math.BigDecimal THOUSAND
      表示数值 1000(一千) 的BigDecimal
      protected java.math.BigDecimal value  
      static java.math.BigDecimal ZERO
      表示数值 0(零) 的BigDecimal
    • 构造器概要

      构造器 
      构造器 说明
      Arith()
      构造一个默认值为0的商业计算数
      Arith​(boolean d)
      构造一个指定boolean值的商业计算数。
      Arith​(double d)
      构造一个为指定值的商业计算数
      Arith​(int d)
      构造一个指定int值的商业计算数
      Arith​(long d)
      构造一个指定long值的商业计算数
      Arith​(java.lang.Object d)
      构造一个指定Object值的商业计算数
      Arith​(java.lang.String d)
      构造一个为指定值(字符串形式)的商业计算数
      Arith​(java.math.BigDecimal d)
      构造一个为指定double值的商业计算数
    • 方法概要

      所有方法 静态方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      Arith add​(double d)
      商业加法运算
      static double add​(double a, double b)
      商业加法运算
      Arith add​(long d)
      商业加法运算
      Arith add​(java.lang.String d)
      商业加法运算
      Arith add​(java.math.BigDecimal d)
      商业加法运算
      byte byteValue()
      转换为byte值
      static boolean canDivideExactly​(java.math.BigDecimal d, java.math.BigDecimal divisor)
      检测数值d能否被divisor整除(即:余数为0)
      Arith ceil()
      将当前BigDecimal进行向上舍入到相邻的整数
      static long ceil​(double d)
      向上取整,返回大于或等于指定数值的最小整数
      static int compareTo​(java.math.BigDecimal a, double b)
      判断两个数值a和b的大小
      static int compareTo​(java.math.BigDecimal a, long b)
      判断两个数值a和b的大小
      static int compareTo​(java.math.BigDecimal a, java.lang.String b)
      判断两个数值a和b的大小
      static int compareTo​(java.math.BigDecimal a, java.math.BigDecimal b)
      判断两个数值a和b的大小
      Arith divide​(double d)
      商业除法运算
      static double divide​(double a, double b, int scale)
      商业除法运算(四舍五入)
      Arith divide​(double d, int scale, java.math.RoundingMode roundingMode)
      商业除法运算
      Arith divide​(long d)
      商业除法运算
      Arith divide​(long d, int scale, java.math.RoundingMode roundingMode)
      商业除法运算
      Arith divide​(java.lang.String d)
      商业除法运算
      Arith divide​(java.lang.String d, int scale, java.math.RoundingMode roundingMode)
      商业除法运算
      Arith divide​(java.math.BigDecimal d)
      商业除法运算
      Arith divide​(java.math.BigDecimal d, int scale, java.math.RoundingMode roundingMode)
      商业除法运算
      Arith divideRound​(double d, int scale)
      以四舍五入的舍入方式进行商业除法运算
      Arith divideRound​(long d, int scale)
      以四舍五入的舍入方式进行商业除法运算
      Arith divideRound​(java.lang.String d, int scale)
      以四舍五入的舍入方式进行商业除法运算
      Arith divideRound​(java.math.BigDecimal d, int scale)
      以四舍五入的舍入方式进行商业除法运算
      double doubleValue()
      转换为double值
      double doubleValue​(int scale)
      转换为四舍五入精确到指定小数位的double值
      static double even​(double d, int scale)
      RoundingMode.HALF_EVEN 的方式使指定小数精确到指定的小数位数
      float floatValue()
      转换为float值
      Arith floor()
      将当前BigDecimal进行向下舍去到相邻的整数
      static long floor​(double d)
      向下取整,返回小于或等于指定数值的最大整数
      int intValue()
      转换为int值
      static boolean isIntegral​(java.math.BigDecimal d)
      检测指定的BigDecimal是否为整数值
      long longValue()
      转换为long值
      Arith minus​(double d)
      商业减法运算
      static double minus​(double a, double b)
      商业减法运算
      Arith minus​(long d)
      商业减法运算
      Arith minus​(java.lang.String d)
      商业减法运算
      Arith minus​(java.math.BigDecimal d)
      商业减法运算
      Arith multiply​(double d)
      商业乘法运算
      static double multiply​(double a, double b)
      商业乘法运算
      static double multiply​(double a, double b, int scale)
      商业乘法运算(四舍五入)
      static double multiply​(double a, double b, int scale, java.math.RoundingMode roundingMode)
      商业乘法运算
      static double multiply​(double a, double b, long precision)
      商业乘法运算(四舍五入)
      注意:此方法的有效位数包含整数部分在内
      将precision设为long类型只是为了重载的需要
      Arith multiply​(long d)
      商业乘法运算
      Arith multiply​(java.lang.String d)
      商业乘法运算
      Arith multiply​(java.math.BigDecimal d)
      商业乘法运算
      static double round​(double d, int scale)
      以四舍五入(RoundingMode.HALF_UP)的方式使指定小数精确到指定的小数位数
      Arith round​(int newScale)
      设置四舍五入的精度(即精确到的小数位数)
      static double roundFast​(double value, int newScale)
      设置四舍五入的精度(即精确到的小数位数)
      注意:该方法底层直接根据需求自行计算,常规情况下比 round(int) 要快 10+倍,但目前尚处于实验性质(不过一般基本上没什么问题)
      static double scale​(double d, int scale, java.math.RoundingMode mode)
      以指定的舍入方式使指定小数精确到指定的小数位数
      Arith setScale​(int newScale, java.math.RoundingMode roundingMode)
      设置精度(即精确到的小数位数)
      short shortValue()
      转换为short值
      java.math.BigDecimal toBigDecimal()
      转换为BigDecimal
      static java.math.BigDecimal toBigDecimal​(int n)
      将指定的整数转换为对应的 BigDecimal(内部对于常用数值进行缓存处理)
      java.math.BigInteger toBigInteger()
      转换为BigInteger
      java.lang.String toChineseString​(boolean ignoreFractionalPart, boolean upperCase)
      输出中文形式的数值字符串,例如:"135000000"->"一亿三千五百万"
      java.lang.String toChineseUpperCase​(boolean ignoreFractionalPart)
      输出大写中文形式的数值字符串,例如:"135000000"->"壹亿叁千伍佰万"
      java.lang.String toMoneyUpperCase()
      输出大写中文形式的用于金额(人民币)显示的数值字符串,例如:"135000000"->"壹亿叁千伍佰万元整"
      java.lang.String toString()
      输出数值字符串
      java.lang.String toString​(int scale)
      输出以四舍五入模式保留指定小数位精度的数值字符串
      static double truncate​(double d, int scale, java.math.RoundingMode mode)
      以指定舍入方式使指定小数精确到指定的小数位数
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • 字段详细资料

      • ZERO

        public static final java.math.BigDecimal ZERO
        表示数值 0(零) 的BigDecimal
      • ONE

        public static final java.math.BigDecimal ONE
        表示数值 1(一) 的BigDecimal
      • TEN

        public static final java.math.BigDecimal TEN
        表示数值 10(一十) 的BigDecimal
      • HANDRED

        public static final java.math.BigDecimal HANDRED
        表示数值 100(一百) 的BigDecimal
      • THOUSAND

        public static final java.math.BigDecimal THOUSAND
        表示数值 1000(一千) 的BigDecimal
      • MYRIAD

        public static final java.math.BigDecimal MYRIAD
        表示数值 10 000(一万) 的BigDecimal
      • HANDRED_MILLION

        public static final java.math.BigDecimal HANDRED_MILLION
        表示数值 100 000 000(一亿) 的BigDecimal
      • value

        protected java.math.BigDecimal value
    • 构造器详细资料

      • Arith

        public Arith​(double d)
        构造一个为指定值的商业计算数
      • Arith

        public Arith​(java.lang.String d)
        构造一个为指定值(字符串形式)的商业计算数
      • Arith

        public Arith​(java.math.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​(java.lang.Object d)
        构造一个指定Object值的商业计算数
      • Arith

        public Arith()
        构造一个默认值为0的商业计算数
    • 方法详细资料

      • add

        public Arith add​(java.math.BigDecimal d)
        商业加法运算
        参数:
        d - 指定的加数
      • add

        public Arith add​(java.lang.String d)
        商业加法运算
        参数:
        d - 指定的加数
      • add

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

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

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

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

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

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

        public Arith multiply​(java.math.BigDecimal d)
                       throws java.lang.ArithmeticException
        商业乘法运算
        参数:
        d - 指定的乘数
        抛出:
        java.lang.ArithmeticException - 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(BigDecimal, int, RoundingMode)替代
      • multiply

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

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

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

        public Arith divide​(java.math.BigDecimal d)
                     throws java.lang.ArithmeticException
        商业除法运算
        参数:
        d - 指定的除数
        抛出:
        java.lang.ArithmeticException - 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(BigDecimal, int, RoundingMode)替代
      • divide

        public Arith divide​(java.lang.String d)
                     throws java.lang.ArithmeticException
        商业除法运算
        参数:
        d - 指定的除数
        抛出:
        java.lang.ArithmeticException - 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(String, int, RoundingMode)替代
      • divide

        public Arith divide​(double d)
        商业除法运算
        参数:
        d - 指定的除数
        抛出:
        java.lang.ArithmeticException - 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(double, int, RoundingMode)替代
      • divide

        public Arith divide​(long d)
        商业除法运算
        参数:
        d - 指定的除数
        抛出:
        java.lang.ArithmeticException - 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(long, int, RoundingMode)替代
      • divide

        public Arith divide​(java.math.BigDecimal d,
                            int scale,
                            java.math.RoundingMode roundingMode)
        商业除法运算
        参数:
        d - 指定的除数
        scale - 指定的精确位数
        roundingMode - 设置应用的舍入模式(四舍五入、向上舍入、向下舍去等)
      • divide

        public Arith divide​(java.lang.String d,
                            int scale,
                            java.math.RoundingMode roundingMode)
        商业除法运算
        参数:
        d - 指定的除数
        scale - 指定的精确位数
        roundingMode - 设置应用的舍入模式(四舍五入、向上舍入、向下舍去等)
      • divide

        public Arith divide​(double d,
                            int scale,
                            java.math.RoundingMode roundingMode)
        商业除法运算
        参数:
        d - 指定的除数
        scale - 指定的精确位数
        roundingMode - 设置应用的舍入模式(四舍五入、向上舍入、向下舍去等)
      • divide

        public Arith divide​(long d,
                            int scale,
                            java.math.RoundingMode roundingMode)
        商业除法运算
        参数:
        d - 指定的除数
        scale - 指定的精确位数
        roundingMode - 设置应用的舍入模式(四舍五入、向上舍入、向下舍去等)
      • divideRound

        public Arith divideRound​(java.math.BigDecimal d,
                                 int scale)
        以四舍五入的舍入方式进行商业除法运算
        参数:
        d - 指定的除数
        scale - 指定的精确位数
      • divideRound

        public Arith divideRound​(java.lang.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,
                              java.math.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 java.math.BigDecimal toBigDecimal()
        转换为BigDecimal
      • toBigInteger

        public java.math.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,
                                      java.math.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,
                                   java.math.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,
                                      java.math.RoundingMode mode)
        以指定舍入方式使指定小数精确到指定的小数位数
        参数:
        d - 指定的小数
        scale - 指定的小数精确位数
        mode - 指定的舍入模式
      • compareTo

        public static int compareTo​(java.math.BigDecimal a,
                                    java.math.BigDecimal b)
        判断两个数值a和b的大小
        返回:
        如果:
        • a > b ,则返回 1
        • a == b ,则返回 0
        • a < b ,则返回 -1
      • compareTo

        public static int compareTo​(java.math.BigDecimal a,
                                    double b)
        判断两个数值a和b的大小
        返回:
        如果:
        • a > b ,则返回 1
        • a == b ,则返回 0
        • a < b ,则返回 -1
      • compareTo

        public static int compareTo​(java.math.BigDecimal a,
                                    long b)
        判断两个数值a和b的大小
        返回:
        如果:
        • a > b ,则返回 1
        • a == b ,则返回 0
        • a < b ,则返回 -1
      • compareTo

        public static int compareTo​(java.math.BigDecimal a,
                                    java.lang.String b)
        判断两个数值a和b的大小
        返回:
        如果:
        • a > b ,则返回 1
        • a == b ,则返回 0
        • a < b ,则返回 -1
      • isIntegral

        public static boolean isIntegral​(java.math.BigDecimal d)
        检测指定的BigDecimal是否为整数值
      • canDivideExactly

        public static boolean canDivideExactly​(java.math.BigDecimal d,
                                               java.math.BigDecimal divisor)
        检测数值d能否被divisor整除(即:余数为0)
        参数:
        d - 被除数
        divisor - 除数
        从以下版本开始:
        1.0
      • toString

        public java.lang.String toString()
        输出数值字符串
        覆盖:
        toString 在类中 java.lang.Object
      • toString

        public java.lang.String toString​(int scale)
        输出以四舍五入模式保留指定小数位精度的数值字符串
      • toChineseString

        public java.lang.String toChineseString​(boolean ignoreFractionalPart,
                                                boolean upperCase)
        输出中文形式的数值字符串,例如:"135000000"->"一亿三千五百万"
        参数:
        ignoreFractionalPart - 是否忽略小数部分
      • toChineseUpperCase

        public java.lang.String toChineseUpperCase​(boolean ignoreFractionalPart)
        输出大写中文形式的数值字符串,例如:"135000000"->"壹亿叁千伍佰万"
        参数:
        ignoreFractionalPart - 是否忽略小数部分
      • toMoneyUpperCase

        public java.lang.String toMoneyUpperCase()
        输出大写中文形式的用于金额(人民币)显示的数值字符串,例如:"135000000"->"壹亿叁千伍佰万元整"
      • toBigDecimal

        public static java.math.BigDecimal toBigDecimal​(int n)
        将指定的整数转换为对应的 BigDecimal(内部对于常用数值进行缓存处理)
        从以下版本开始:
        2.8