BigDecimalUtil工具类 Java 多种类型(Double, String, Integer)转换成BigDecimal 进行加减乘除运算

工具说明

没有什么太复杂的代码。
先是通过方法名称确定返回值的类型(BigDecimal、Double、String)。
然后大量的重载方法,用“穷举法”把BigDecimal、Double、String、Integer四种类型进行各种形式的两两组合,进行加减乘除运算。
运算时非BigDecimal类型的参数会转化成BigDecimal以防止精度缺失。


使用方法

加法

  • 共3种方法
    1. add(num1, num2, int places)返回BigDecimal类型的结果
    2. addToDouble(num1, num2, int places)返回Double类型的结果
    3. addToString(num1, num2, int places)返回String类型的结果
  • 以上3个方法都适用的说明:
    • num1和num2为相加的两个值,可以为BigDecimal、Double、String、Integer四种类型任意类型。
    • num1或num2,如果传入空值,会被赋值为0进行计算。
    • places是一个int类型参数,决定结果取小数点后的几位(四舍五入)。加法不强制要求改参数,不需要的话只写前两个参数就可以了。
      //add(num1, num2) 加法 返回BigDecimal
      BigDecimal addResult = BigDecimalUtil.add(a, b);
      //add(num1, num2, int places) 加法 返回BigDecimal 同时保留2位小数
      BigDecimal addResult2 = BigDecimalUtil.add(a, b, 2);
      
      //addToDouble(num1, num2) 加法 返回Double
      Double addToDoubleResult = BigDecimalUtil.addToDouble(b, c);
      //add(num1, num2, int places) 加法 返回Double 同时保留2位小数
      BigDecimal addToDoubleResult2 = BigDecimalUtil.addToDouble(a, b, 2);
      
      //addToString(num1, num2) 加法 返回String
      String addToStringResult = BigDecimalUtil.addToString(c, d);
      //addToString(num1, num2, int places) 加法 返回String 同时保留2位小数
      String addToStringResult2 = BigDecimalUtil.addToString(c, d, 2);
      

减法

  • 减法,其实跟加法是一个道理,顶多提一句的就是第一个参数num1是被减数,第二个参数num2是减数,共3种方法
    1. subtract(num1, num2, int places)返回BigDecimal类型的结果
    2. subtractToDouble(num1, num2, int places)返回Double类型的结果
    3. subtractToString(num1, num2, int places)返回String类型的结果
  • 同样不需要四舍五入的取n位小数的话就不需要写第三个参数了。
  • 同样,num1或num2,如果传入空值,会被赋值为0进行计算。

乘法

  • 乘法和加法基本一致,共3种方法
    1. multiply(num1, num2, int places)返回BigDecimal类型的结果
    2. multiplyToDouble(num1, num2, int places)返回Double类型的结果
    3. multiplyToString(num1, num2, int places)返回String类型的结果
  • 乘法运算时,num1或num2,如果传入空值,也会被赋值为0进行计算,其实就是不管谁为空,最后都会得到一个为0的结果。

除法

  • 除法大体和减法一样,第一个参数num1是被除数,第二个参数num2是除数,共3种方法
    1. divide(num1, num2, int places)返回BigDecimal类型的结果
    2. divideToDouble(num1, num2, int places)返回Double类型的结果
    3. divideToString(num1, num2, int places)返回String类型的结果
  • 但除法有一定的特殊性:
    1. 除法中,第三个参数 int places保留小数的位数必须传入,以应对无限小数。
    2. 第二参数,即被除数,如果传空或者传0话,不会走计算过程,直接返回0作为结果。

工具类代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值