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);  
       }  
    }
    
  • 相关阅读:
    交换机的配置文件和系统映像文件备份与恢复(如果不小心损坏了,可以用这种方法恢复)
    交换机端口安全配置
    路由器密码重置(不是适用于所有有些启动顺序数字不一样)
    交换机的默认网关(跨网段telnet)
    思科交换机的初始配置(使用telnet登录)
    Linux命令集(第一部分共40个)
    Linux6.9安装
    javamail邮件发送报错解决方案
    isEmpty()与equals()、==“”区别
    eclipse svn 修改了类名之后提交
  • 原文地址:https://www.cnblogs.com/miraclewu/p/12880475.html
Copyright © 2011-2022 走看看