什么注解可以改变BigDecimal类型的字段返回的小数位数?
什么注解可以改變BigDecimal類型的字段返回的小數位數?_myme95的博客-CSDN博客
問題背景:我在數據庫里有一個字段,是decimal(20,15)類型,但是我在代碼里返回數據給前端時,我要返回5位小數給前端。那么怎么轉換BigDecimal字段數值的小數點后的位數?
一般的,如果我們只有一個字段,自然而然的想到的是在返回數據時手動處理一下,如:
但是,如果我們有很多BigDecimal字段呢?這樣處理起來是不是就太麻煩了,而且代碼寫出來也不好看。是否有一個像日期格式化的注解那樣,直接加在屬性上就生效了,不需要再寫別的代碼了?
如
雖然暫時沒有找到這種注解,但是我找到了一個方法,可以自己利用@JsonSerialize注解,然后自定義返回格式,現在記錄分享給大家。
步驟一:新建一個類,繼承JsonSerializer。
public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {
?
? ? @Override
? ? public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
? ? ? ? if (value != null) {
? ? ? ? ? ? // 保留5位小數,四舍五入
? ? ? ? ? ? BigDecimal number = value.setScale(5, RoundingMode.HALF_UP);
? ? ? ? ? ? gen.writeNumber(number);
? ? ? ? } else {
? ? ? ? ? ? gen.writeNumber(value);
? ? ? ? }
? ? }
}
步驟二:在要轉換輸出格式的BigDecimal類型的字段上加上注解,引用這個自己寫的類。代碼如下:
public class entity(){
?
@JsonSerialize(using = BigDecimalSerializer.class)
private BigDecimal price ;
?
?
}
?
myme95
關注
4
1
7
java中BigDecimal的操作方法
09-04
主要介紹了java中BigDecimal的操作方法,較為詳細的分析了BigDecimal類在進行商業計算時的應用方法,精度以及注意事項等問題,需要的朋友可以參考下
實體類BigDecimal類型字段注解實現取兩位小數序列化
最新發布
天棄的博客
?161
創建class 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; public class BigDecimalSeri
評論1
?
不吃西紅柿:notomoto
2021.05.04
回復
大佬的文章讓我受益匪淺,如癡如醉,以后的日子還希望能夠得到大佬的諄諄指指點點!
————————————————
版權聲明:本文為CSDN博主「myme95」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/myme95/article/details/114374151
什么注解可以改變BigDecimal類型的字段返回的小數位數?_myme95的博客-CSDN博客
總結
以上是生活随笔為你收集整理的什么注解可以改变BigDecimal类型的字段返回的小数位数?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TMDHosting vs SiteGr
- 下一篇: 求一张顶级玩逆战的电脑配置?