Index: forgon-tools/src/main/java/com/forgon/tools/MathTools.java =================================================================== diff -u -r12331 -r13153 --- forgon-tools/src/main/java/com/forgon/tools/MathTools.java (.../MathTools.java) (revision 12331) +++ forgon-tools/src/main/java/com/forgon/tools/MathTools.java (.../MathTools.java) (revision 13153) @@ -46,18 +46,27 @@ .multiply(new BigDecimal(Double.toString(b))) .setScale(newScale, BigDecimal.ROUND_HALF_UP).doubleValue(); //保留到小数点后2位 } - // newScale为小数点后保留的位数 public static double divide(double a, double b, int newScale) { return new BigDecimal(a) .divide(new BigDecimal(b), newScale, BigDecimal.ROUND_HALF_UP).doubleValue(); //保留到小数点后2位 } - - public static BigDecimal mul(double a, double b) { - return new BigDecimal(Double.toString(a)).multiply(new BigDecimal( - Double.toString(b))); + /** + * 计算两个数的积。如果有一个数为null,则返回值为0.0 + * @param a 乘数,可以为null + * @param b 乘数,可以为null + * @return a x b,如果a或者b有一个为null,返回0.0 + */ + public static BigDecimal mul(Number a,Number b){ + BigDecimal ret = null; + if(a != null && b != null){ + ret = new BigDecimal(a.doubleValue()).multiply(new BigDecimal(b.doubleValue())); + } + if(ret == null){ + ret = new BigDecimal(0.0); + } + return ret; } - // 将对象转为Integer,如果对象为空或者不为数字,则转为0 public static Integer object2Integer(Object object){ Integer result = 0;