zoukankan      html  css  js  c++  java
  • double类型数据的加减乘除

    java中double型数据的加减乘除,详细方法说明

    Java代码

    import java.math.BigDecimal;  
    /** 
     * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。 
     */  
    public class DoubleUtils{  
        private static final int DEF_DIV_SCALE = 2;  
          
       /** 
         * @Description 两个Double数相加  
         * 
         * @param d1 
         * @param d2 
         * @return Double 
         */  
        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();  
        }  
          
       /** 
         * @Description 两个Double数相减  
         * 
         * @param d1 
         * @param d2 
         * @return Double 
         */  
        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();  
        }  
          
       /** 
         * @Description 两个Double数相乘  
         * 
         * @param d1 
         * @param d2 
         * @return Double 
         */  
        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();  
        }  
          
       /** 
         * @Description 两个Double数相除  
         * 
         * @param d1 
         * @param d2 
         * @return Double 
         */  
        public static Double div(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();  
        }  
          
        /** 
         * @Description 两个Double数相除,并保留scale位小数  
         * 
         * @param d1 
         * @param d2 
         * @param scale 
         * @return Double 
         */  
        public static Double div(Double d1,Double d2,int scale){  
            if(scale<0){  
                throw new IllegalArgumentException(  
                "The scale must be a positive integer or zero");  
            }  
            BigDecimal b1 = new BigDecimal(d1.toString());  
            BigDecimal b2 = new BigDecimal(d2.toString());  
            return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();  
        }  
      
       /** 
         * @Description String类型小数与Double类型的转换  
         */  
       public static void StrToDouble(){  
          String str="1234.5678";  
          double num;  
          DecimalFormat myformat = new DecimalFormat("#0.00");  
          num = Double.parseDouble(str);//直接转换为double类型  
          num = Double.parseDouble(myformat.format(num));//保留2为小数  
          System.out.println(num);  
       }  
    }
    
  • 相关阅读:
    一个特殊的SQL Server阻塞案例分析
    cannot be run because the QueueReader subsystem failed to load
    ORACLE中关于表的一些特殊查询语句
    ORACLE中如何查找定位表最后DML操作的时间小结
    MySQL慢查询日志释疑总结
    Windows服务器如何查看共享目录信息
    SQL Server Log Shipping学习总结
    连环清洁工之特殊任务--java资源如何关闭?
    花果山第一届猿类分级考试实录--Talk is cheap,Show me the code
    猿类如何捕获少女心--难以琢磨的try-catch
  • 原文地址:https://www.cnblogs.com/miraclewu/p/12880475.html
Copyright © 2011-2022 走看看