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

慈云数据 2024-04-01 技术支持 42 0
  • 根据业务,需要通过后端给前端返回部分double类型的数值,一般需要保留两位小数,使用jackson转换对象
    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 {
        @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());
            }
        }
    }
    
    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;
    }
    
    java实体中返回前端的double类型四舍五入(格式化)
    (图片来源网络,侵删)
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon