java 加减乘除错误 (二)

2014-11-24 09:53:48 · 作者: · 浏览: 1
eturn b1.add(b2).doubleva lue(); } /** * * 两个Double数相加 * * * @param v1 * * @param v2 * * @return Double */ public static Double add(Long v1, Long v2) { BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.add(b2).doubleva lue(); } /** * * 两个Double数相减 * * * @param v1 * * @param v2 * * @return Double */ public static Double sub(Double v1, Double v2) { BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.subtract(b2).doubleva lue(); } /** * * 两个Double数相乘 * * * @param v1 * * @param v2 * * @return Double */ public static Double mul(Double v1, Double v2) { BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.multiply(b2).doubleva lue(); } /** * * 两个数相乘 * * * @param v1 * * @param v2 * * @return Double */ public static Double mul(Double v1, Long v2) { BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.multiply(b2).doubleva lue(); } /** * * 两个Double数相除 * * * @param v1 * * @param v2 * * @return Double */ public static Double div(Double v1, Double v2) { BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP).doubleva lue(); } /** * * 两个Double数相除 * * * @param v1 * * @param v2 * * @return Double */ public static Double div(Double v1, Long v2) { BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP).doubleva lue(); } /** * * 两个Long数相除 * * * @param v1 * * @param v2 * * @return Double */ public static Double div(Long v1, Long v2) { BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP).doubleva lue(); } /** * * 两个Double数相除,并保留scale位小数 * * * @param v1 * * @param v2 * * @param scale * * @return Double */ public static Double div(Double v1, Double v2, int scale) { if (scale < 0) { throw new IllegalArgumentException("The scale must be a positive integer or zero"); } BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleva lue(); } }