类 Arith

java.lang.Object
me.codeplayer.util.Arith

public class Arith extends Object
用于商业运算的常用计算工具类
从以下版本开始:
2012-9-27
作者:
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
    • HUNDRED

      public static final BigDecimal HUNDRED
      表示数值 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(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(BigDecimal d) throws ArithmeticException
      商业乘法运算
      参数:
      d - 指定的乘数
      抛出:
      ArithmeticException - 如果无法除尽或除数为0则会抛出该异常,无法除尽时请使用divide(BigDecimal, int, RoundingMode)替代
    • 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) 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 - 加数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()
      输出数值字符串
      覆盖:
      toString 在类中 Object
    • 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