Java对 Double 类型的数据进行四舍五入详解编程语言

/** 
     * 对 Double 类型的数据进行四舍五入 
     * @author gaoqing 
     * 2014-12-2 
     * @param initValue 初始值 
     * @param scaleNum 保留小数点的位数 
     * @param tClass 保留小数点位数后,返回的数据类型的 Class  
     * @return t 四舍五入后的值 
     */ 
    public static <T> T roundDouleValue(Double initValue, int scaleNum, Class<T> tClass){ 
        T t = null; 
        String className = tClass.getName().toLowerCase(); 
         
         
        if (initValue == null) { 
            //返回类型为:整数 
            if (className.contains("int")) { 
                t = (T) Integer.valueOf(0); 
                 
                //返回类型为:浮点数 
            }else if (className.contains("dou")) { 
                t = (T) Double.valueOf(0.0); 
            }  
        }else { 
            BigDecimal bigDecimal = new BigDecimal(initValue); 
            BigDecimal scaledBigDecimal = bigDecimal.setScale(scaleNum, BigDecimal.ROUND_HALF_UP); 
             
            //返回类型为:整数 
            if (className.contains("int")) { 
                Integer tempInteger = new Integer(scaledBigDecimal.intValue()); 
                t = (T)tempInteger ; 
                 
                //返回类型为:浮点数 
            }else if (className.contains("dou")) { 
                Double tempDouble = new Double(scaledBigDecimal.doubleValue()); 
                t = (T) tempDouble; 
            }  
        } 
        return t; 
    }

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10733.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论