JSON全局控制:JAVA后端到前端的数字的小数点后位数

5 篇文章 0 订阅

传递到前端的数字, 小数点后位数一般要限制在六个以内,否则会导致出现十多位乱七八糟的数字,最近研究了下,经过尝试找到了这种方法,分享给粉丝们
这里以小数点后位数3位为例:


    @Bean
    public SimpleModule simpleModule(){
        SimpleModule simpleModule = new SimpleModule();
        simpleModule.addSerializer(Number.class, new JsonSerializer<Number>() {
            @Override
            public void serialize(Number value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
//                Class.
                if(value==null){
                    gen.writeNull();
                    return;
                }
//                logger.debug("数字{}的类型是{}",value,value.getClass().getTypeName());
                String s;
                if(value instanceof Float || value instanceof Double|| value instanceof BigDecimal)//#表示没有则为空,0表示如果没有则该位补0.
                    s=new java.text.DecimalFormat("#.###").format(value);//value=( value).doubleValue()-( value).doubleValue()%0.01;
                else
                    s=String.valueOf(value);
//                logger.debug("数值{}格式化为#.###以后的结果是{}", value,s);
                gen.writeNumber(s);;
            }
        });// ToStringSerializer.instance);
        return simpleModule;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值