/**
* 对 Double 类型的数据进行四舍五入
* @author gaoqing
* 2014-12-2
* @param initValue 初始值
* @param scaleNum 保留小数点的位数
* @param tClass 保留小数点位数后,返回的数据类型的 Class
* @return t 四舍五入后的值
*/
public static T roundDouleValue(Double initValue, int scaleNum, Class 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;
}