工具说明
没有什么太复杂的代码。
先是通过方法名称确定返回值的类型(BigDecimal、Double、String)。
然后大量的重载方法,用“穷举法”把BigDecimal、Double、String、Integer四种类型进行各种形式的两两组合,进行加减乘除运算。
运算时非BigDecimal类型的参数会转化成BigDecimal以防止精度缺失。
使用方法
加法
- 共3种方法
add(num1, num2, int places)
返回BigDecimal类型的结果addToDouble(num1, num2, int places)
返回Double类型的结果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种方法subtract(num1, num2, int places)
返回BigDecimal类型的结果subtractToDouble(num1, num2, int places)
返回Double类型的结果subtractToString(num1, num2, int places)
返回String类型的结果
- 同样不需要四舍五入的取n位小数的话就不需要写第三个参数了。
- 同样,num1或num2,如果传入空值,会被赋值为0进行计算。
乘法
- 乘法和加法基本一致,共3种方法
multiply(num1, num2, int places)
返回BigDecimal类型的结果multiplyToDouble(num1, num2, int places)
返回Double类型的结果multiplyToString(num1, num2, int places)
返回String类型的结果
- 乘法运算时,num1或num2,如果传入空值,也会被赋值为0进行计算,其实就是不管谁为空,最后都会得到一个为0的结果。
除法
- 除法大体和减法一样,
第一个参数num1是被除数,第二个参数num2是除数
,共3种方法divide(num1, num2, int places)
返回BigDecimal类型的结果divideToDouble(num1, num2, int places)
返回Double类型的结果divideToString(num1, num2, int places)
返回String类型的结果
- 但除法有一定的特殊性:
- 除法中,第三个参数
int places
保留小数的位数必须传入,以应对无限小数。 - 第二参数,即被除数,如果传空或者传0话,不会走计算过程,直接返回0作为结果。
- 除法中,第三个参数
工具类代码
- 代码过长,就不贴在博客里了,已经上传至资源:点击前往资源。