今天在轉換一個關於金額字段發現一個關於json轉換的bug 目前尚未深入觀察
問題:
如果金錢為bigdecimal json轉換后不會丟失精度 但是通過@responsebody 返回到前端后發現精度會丟失 比如 9.00 會變成9
因為代碼無法粘貼 這里描述下 bigdecimal在傳入number類型無法保留精度 傳入string可以保留精度
考慮之后的解決方案 將字段變為string 轉換之后即可解決。
截圖1: 解決辦法
讓字段返回string
postman截圖
有沒有大佬執教下
關於計算丟失精度問題
BigDecimal setScale = decimal.setScale(4,BigDecimal.ROUND_HALF_DOWN);
采用下面這種方法即可。