一个工具类的静态安方法
public static void getBigDecamalTwo(Object source){
BeanWrapper src = new BeanWrapperImpl(source);
PropertyDescriptor[] pds = src.getPropertyDescriptors();
for (PropertyDescriptor pd : pds) {
BigDecimal ret =new BigDecimal(0);
if (pd.getPropertyType().equals(BigDecimal.class)) {
if (null !=src.getPropertyValue(pd.getName())) {
Object value = src.getPropertyValue(pd.getName());
if (value instanceof BigDecimal) {
ret = (BigDecimal) value;
} else if (value instanceof String) {
ret = new BigDecimal((String) value);
} else if (value instanceof BigInteger) {
ret = new BigDecimal((BigInteger) value);
} else if (value instanceof Number) {
ret = new BigDecimal(((Number) value).doubleValue());
}
src.setPropertyValue(pd.getName(),new BigDecimal(new DecimalFormat("0.00#").format(ret.setScale(2,BigDecimal.ROUND_HALF_UP))));
}
}
}
}
BeanWrapperImpl 是spring自带的
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;