/** * 对 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/tech/pnotes/10733.html