- /**
- * 对 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;
- }
来源: http://www.phpxs.com/code/1002099/