工具类转换任意bean 类型为BigDecimal的属性值 保留2位小数四舍五入,不足补全

本文介绍了一个工具类的方法getBigDecamalTwo,该方法遍历对象的所有属性,并将BigDecimal类型的属性值保留两位小数。同时支持String、BigInteger及Number类型转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个工具类的静态安方法

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值