DECIMAL从MySQL 5.1引入,在mysql中,金额用“DECIMAL”类型。DECIMAL类型是专门为财务相关问题而设计的数据类型,能够解决数据的范围和精度的问题,常用于货币数据,如价格,工资,帐户余额等;它实际上是以字符串的形式存放的,可在定义时划定整数部分以及小数部分的位数,语法“DECIMAL(M,D)”,参数M是数字的最大数(精度),参数D是小数点右侧数字的数目(标度)。
数据库中金额存储使用“DECIMAL”类型
`f_ldebitbalamt` decimal(24,2)
java对象实体使用BigDecimal进行映射
private BigDecimal fLdebitbalamt;
调用接口返回数据如下:
前端页面显示如下:
会发现数值过大,就变成了科学计数法了,前端展示更是离谱
当然,这个问题与前端无关,是后端的问题,后端接口返回的数据就有问题,后端返回数据序列化出现的问题
那就在java实体类的BigDecimal属性上加上@JsonSerialize序列化注解:
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@JsonSerialize(using = ToStringSerializer.class)
private BigDecimal fLdebitbalamt;
问题就完美解决啦
标签:BigDecimal,DECIMAL,数据类型,数值,问题,序列化,JsonSerialize From: https://blog.51cto.com/u_16305703/8329243