public class DoubleUtils { private static final int DEF_DIV_SCALE=2; /** * 两个double相加 * @param d1 * @param d2 * @return */ public static Double add(Double d1,Double d2){ BigDecimal b1=new BigDecimal(d1.toString()); BigDecimal b2=new BigDecimal(d2.toString()); return b1.add(b2).doubleValue(); } /** * 两个double相减 * @param d1 * @param d2 * @return */ public static Double sub(Double d1,Double d2){ BigDecimal b1=new BigDecimal(d1.toString()); BigDecimal b2=new BigDecimal(d2.toString()); return b1.subtract(b2).doubleValue(); } /** * 两个double相乘 * @param d1 * @param d2 * @return */ public static Double mul(Double d1,Double d2){ BigDecimal b1=new BigDecimal(d1.toString()); BigDecimal b2=new BigDecimal(d2.toString()); return b1.multiply(b2).doubleValue(); } /** * 两个double相除 * @param d1 * @param d2 * @return */ public static Double divide(Double d1,Double d2){ BigDecimal b1=new BigDecimal(d1.toString()); BigDecimal b2=new BigDecimal(d2.toString()); return b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 两个double相除,并保留scale位小数 * @param d1 * @param d2 * @return */ public static Double divide(Double d1,Double d2,int scale){ if(scale<0){ throw new IllegalArgumentException(); } BigDecimal b1=new BigDecimal(d1.toString()); BigDecimal b2=new BigDecimal(d2.toString()); return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * string类型转double 并保留两位小数 */ public static Double strToDouble(String str){ Double dou; DecimalFormat format=new DecimalFormat(); dou=Double.parseDouble(str);//直接转换为double类型 dou=Double.parseDouble(format.format(dou)); return dou; } }
double类型的加减乘除运算
最新推荐文章于 2024-04-27 13:28:11 发布