Java实现浮点数的四舍五入,保留几位小数

冒泡排序算法    

double myRound(double d,int n)
{
    d = d*pow(10,n);
    d += 0.5;
    d = (long)d;
    d = d/pow(10,n);
    return d;
}
上述代码中的d是我们要进行四舍五入的浮点数,n是我们要保留的小数点后位数。 
四舍五入,主要靠这两行代码实现

 d += 0.5; d = (long)d;
强制类型转换,会直接舍去小数点后的数字,而先对d进行加0.5操作,则是为了四舍五入,比如4.1,加0.5后变为4.6,强转,舍去小数部分,变为4;又如5.7,加0.5后变为6.2,强转,舍去小数部分,变为6。

保留n位小数,主要靠

 d = d*pow(10,n);


 d = d/pow(10,n);
比如对,62.164保留2位小数,先乘10的二次方,为6216.4,四舍五入位6216,在除以10的二次方,为62.16。
继续阅读 »
冒泡排序算法    

double myRound(double d,int n)
{
    d = d*pow(10,n);
    d += 0.5;
    d = (long)d;
    d = d/pow(10,n);
    return d;
}
上述代码中的d是我们要进行四舍五入的浮点数,n是我们要保留的小数点后位数。 
四舍五入,主要靠这两行代码实现

 d += 0.5; d = (long)d;
强制类型转换,会直接舍去小数点后的数字,而先对d进行加0.5操作,则是为了四舍五入,比如4.1,加0.5后变为4.6,强转,舍去小数部分,变为4;又如5.7,加0.5后变为6.2,强转,舍去小数部分,变为6。

保留n位小数,主要靠

 d = d*pow(10,n);


 d = d/pow(10,n);
比如对,62.164保留2位小数,先乘10的二次方,为6216.4,四舍五入位6216,在除以10的二次方,为62.16。 收起阅读 »

java获取当前月第一天和最后一天,上个月第一天和最后一天

 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
         
        //获取前月的第一天
        Calendar   cal_1=Calendar.getInstance();//获取当前日期 
        cal_1.add(Calendar.MONTH, -1);
        cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
        firstDay = format.format(cal_1.getTime());
        System.out.println("-----1------firstDay:"+firstDay);
        //获取前月的最后一天
        Calendar cale = Calendar.getInstance();   
        cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天 
        lastDay = format.format(cale.getTime());
        System.out.println("-----2------lastDay:"+lastDay);
         
         
        //获取当前月第一天:
        Calendar c = Calendar.getInstance();    
        c.add(Calendar.MONTH, 0);
        c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
        String first = format.format(c.getTime());
        System.out.println("===============first:"+first);
         
        //获取当前月最后一天
        Calendar ca = Calendar.getInstance();    
        ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));  
        String last = format.format(ca.getTime());
        System.out.println("===============last:"+last);
        
        /** 
     * 字符串的日期格式的计算 
     */ 
    public static int daysBetween(String smdate,String bdate) throws ParseException{ 
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
            Calendar cal = Calendar.getInstance(); 
            cal.setTime(sdf.parse(smdate)); 
            long time1 = cal.getTimeInMillis(); 
            cal.setTime(sdf.parse(bdate)); 
            long time2 = cal.getTimeInMillis(); 
            long between_days=(time2-time1)/(1000*3600*24); 
            return Integer.parseInt(String.valueOf(between_days)); 
    }
继续阅读 »
 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
         
        //获取前月的第一天
        Calendar   cal_1=Calendar.getInstance();//获取当前日期 
        cal_1.add(Calendar.MONTH, -1);
        cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
        firstDay = format.format(cal_1.getTime());
        System.out.println("-----1------firstDay:"+firstDay);
        //获取前月的最后一天
        Calendar cale = Calendar.getInstance();   
        cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天 
        lastDay = format.format(cale.getTime());
        System.out.println("-----2------lastDay:"+lastDay);
         
         
        //获取当前月第一天:
        Calendar c = Calendar.getInstance();    
        c.add(Calendar.MONTH, 0);
        c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
        String first = format.format(c.getTime());
        System.out.println("===============first:"+first);
         
        //获取当前月最后一天
        Calendar ca = Calendar.getInstance();    
        ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));  
        String last = format.format(ca.getTime());
        System.out.println("===============last:"+last);
        
        /** 
     * 字符串的日期格式的计算 
     */ 
    public static int daysBetween(String smdate,String bdate) throws ParseException{ 
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
            Calendar cal = Calendar.getInstance(); 
            cal.setTime(sdf.parse(smdate)); 
            long time1 = cal.getTimeInMillis(); 
            cal.setTime(sdf.parse(bdate)); 
            long time2 = cal.getTimeInMillis(); 
            long between_days=(time2-time1)/(1000*3600*24); 
            return Integer.parseInt(String.valueOf(between_days)); 
    } 收起阅读 »

Java判断一段话中是否有电话号码

判断一段话中是否有电话号码,并将其进行隐藏:

    public static String hidPhone(String string) {
        Pattern pattern = Pattern.compile("(?<!\\d)(?:(?:1[34578]\\d{9})|(?:861[34578]\\d{9}))(?!\\d)");
        Matcher matcher = pattern.matcher(string);
        StringBuffer bf = new StringBuffer(64);
        while (matcher.find()) {
//           bf.append(matcher.group()).append(",");
//            System.out.println(matcher.group());
            string = string.replace(matcher.group(), matcher.group().substring(0,3)+"********");
        }
        
//        int len = bf.length();
//        if (len > 0) {
//            bf.deleteCharAt(len - 1);
//        }
//        System.out.println(bf.toString());
    
        return string;
    }
继续阅读 »
判断一段话中是否有电话号码,并将其进行隐藏:

    public static String hidPhone(String string) {
        Pattern pattern = Pattern.compile("(?<!\\d)(?:(?:1[34578]\\d{9})|(?:861[34578]\\d{9}))(?!\\d)");
        Matcher matcher = pattern.matcher(string);
        StringBuffer bf = new StringBuffer(64);
        while (matcher.find()) {
//           bf.append(matcher.group()).append(",");
//            System.out.println(matcher.group());
            string = string.replace(matcher.group(), matcher.group().substring(0,3)+"********");
        }
        
//        int len = bf.length();
//        if (len > 0) {
//            bf.deleteCharAt(len - 1);
//        }
//        System.out.println(bf.toString());
    
        return string;
    } 收起阅读 »
Template error, template file not found