java实体中返回前端的double类型四舍五入(格式化)

  • 根据业务,需要通过后端给前端返回部分double类型的数值,一般需要保留两位小数,使用jackson转换对象
java 复制代码
package com.ruoyi.common.core.config;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.apache.commons.lang3.math.NumberUtils;
import java.io.IOException;
import java.math.RoundingMode;
public class CustomDoubleSerialize extends JsonSerializer<Double> {
    @Override
    public void serialize(Double doubleVal, JsonGenerator gen, SerializerProvider serializers) throws IOException{
        if(doubleVal != null) {
     gen.writeNumber(NumberUtils.toScaledBigDecimal(doubleVal, 2, RoundingMode.HALF_UP).doubleValue());
        }
    }
}
java 复制代码
package com.demo.domain.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ruoyi.common.core.config.CustomDoubleSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@ApiModel("类比Vo")
public class OcsAnalogyVo implements Serializable{
    @ApiModelProperty("节点/班组id")
    private Long showId;
    @ApiModelProperty("节点/班组名称")
    private String showName;
    @ApiModelProperty("展示值")
    @JsonSerialize(using = CustomDoubleSerialize.class)
    private Double showVal;
    @ApiModelProperty("展示时间")
    private String showTime;
}
相关推荐
JWASX3 小时前
【RocketMQ 生产者和消费者】- 事务源码分析(1)
java·rocketmq·java-rocketmq
AlunYegeer4 小时前
JAVA,以后端的视角理解前端。在全栈的路上迈出第一步。
java·开发语言·前端
DFT计算杂谈5 小时前
自动化脚本一键绘制三元化合物相图
java·运维·服务器·开发语言·前端·python·自动化
2301_771717215 小时前
Spring Boot 自动配置核心注解
java·spring boot·mybatis
小Y._5 小时前
面试被问synchronized锁升级,这5个问题答不上来直接挂!
java
姚青&5 小时前
测试技术体系
java·python
南境十里·墨染春水6 小时前
C++日志 2——实现单线程日志系统
java·jvm·c++
布吉岛的石头6 小时前
微服务网关统一鉴权、限流、日志实战
java·spring·微服务
超级无敌葛大侠6 小时前
Redis主从复制
java·redis