Springboot 处理BigDecimal 数据科学计数格式,展示E+8的问题

news/2024/10/18 9:24:24/

如图:

处理方式:

 我们基于springboot的 JsonSerializer ,我们自定义一下 针对BigDecimal类型属性的JsonSerializer处理。

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;import java.io.IOException;
import java.math.BigDecimal;
import java.util.Objects;/*** @Description * @auther JCccc* @date 2023-03-11*/
public class MyBigDecimalSerialize extends JsonSerializer<BigDecimal> {@Overridepublic void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {if(Objects.nonNull(value)) {gen.writeString( value.stripTrailingZeros().toPlainString());}else {//为null的处理,就返回null ,或者可以自己处理gen.writeNull();}}
}

 这是处理了什么? 

可以看到简单的一行代码 :
 

value.stripTrailingZeros().toPlainString()

这做了啥?

stripTrailingZeros()

去除尾部所有的0,并返回一个BigDecimal类型的数据,不能保证不是科学计数法。

toPlainString()

把BigDecimal类型的数据转化成String类型数据,并保证不是科学计数法。

 

然后怎么使用呢? 非常简单,在我们接口的返回实体类的需要处理的属性上,使用 @JsonSerialize 注解即可。

示例:
 

    @JsonSerialize(using= MyBigDecimalSerialize.class)private BigDecimal p1Amt;@JsonSerialize(using= MyBigDecimalSerialize.class)private BigDecimal t1Amt;@JsonSerialize(using= MyBigDecimalSerialize.class)private BigDecimal c1Amt;


其实我们基于这个,还能处理很多东西,比如,当返回的值是 0的时候,我想返回 0.00 ;

返回0.0 的时候,我也想返回0.00 , 可以用这个处理 :

也就是说,自己可以利用这个自定义JsonSerializer去玩自己的一些独特的业务处理。


http://www.ppmy.cn/news/665480.html

相关文章

AndroidViewModel是ViewModel的一个子类,可以直接调用getApplication(),由此可以访问应用的全局资源

结合SharedPreferences实现保存数据 MainActivity.java package com.tjjingpan.study.viewmodelshp;import androidx.appcompat.app.AppCompatActivity; import androidx.databinding.DataBindingUtil; import androidx.lifecycle.SavedStateViewModelFactory;import android…

Linux卸载OpenJDK

1、JDK版本 java -version2、查看当前系统OPENJDK rpm -qa | grep jdk3、卸载 sudo rpm -e --nodeps java-1.8.0-openjdk sudo rpm -e --nodeps java-1.8.0-openjdk-headless sudo rpm -e --nodeps java-1.8.0-openjdk-devel sudo rpm -e --nodeps copy-jdk-configs4、其他 …

快速测试网速软件,‎App Store 上的“测网速大师 - 一键测网速”

测网速大师是一款简单易用且精准测试的测网速工具&#xff0c;一键解决3G,4G,WIFI网络测速。让您随时随地查看当前网络状态。 特性&#xff1a; 1、提供下载&#xff0c;上传和延时检测 2、保留详细测试记录&#xff0c;方便随时查看 3、为下载图片、视频等提供时长参考建议 拥…

更新win11网络卡顿浏览器网速慢

描述:从win10使用官方的升级助手升级到win11后使用浏览器特别卡,但是使用360测网速竟然有网 ps:wifi我用的是校园网,手机热点不卡 解决方案:卸载无线网卡驱动使用360驱动大师安装,驱动精灵没有扫描出来我才用的360驱动大师,然后在修改你所连接wifi的dns设置改为8.8.8.8 和114…

Win10怎么把网速调整到最快? Win10网速调整最快的方法

电脑网速很慢就会非常影响用户的使用体验&#xff0c;其实可以自己设置提高网速。下面小编就给大家带来一篇Win10把网速调到最快的方法教程。希望可以帮助到你呀&#xff01; 方法介绍&#xff1a; 1、右键单击“开始菜单”&#xff0c;选择“运行”&#xff0c;输入“gpedit.m…

app小窗口悬浮工具_悬浮窗口大师

悬浮窗口大师是一款非常实用的手机悬浮窗app&#xff0c;主要有时间悬浮窗、倒计时悬浮窗以及图片和文本悬浮窗等模式&#xff0c;适用于多种场景&#xff0c;可以将文字和标签添加进去&#xff0c;自由挑选喜欢的字体、颜色和背景音乐&#xff0c;让你的手机更加独特。虽然体积…

电信4g网速测试软件,移动联通电信三大运营商4G网速测试,仅供非专业人士参考...

流量漫游费马上就要取消了&#xff0c;哪家运营商的手机用起来更爽呢&#xff1f; 除了资费&#xff0c;网速也很关键&#xff0c;网速慢影响使用体验。 万一将来携号转网真能实现了&#xff0c;想转哪个网也可以参考。 建议大家选个备用号&#xff0c;哪家网好就换哪个&#x…

Arrays of Length Zero 长度为0的数组的使用

声明零长度数组是 GNU 对标准 C 的扩展&#xff0c;可以参考这里 Zero-Length 。若要在一个结体体中声明一个 0 长度数组则这个声明必须放在结构体的最后&#xff0c;如&#xff1a; struct hci_dev_req {uint16_t dev_id;uint32_t dev_opt; };struct hci_dev_list_req {uint1…