BigDecimal轉json時候會丟失精度問題


今天遇到了一個需求,價格保留兩位小數,不夠補0;

這樣一個簡單的需求,引出一點小問題記錄下,首先我的查詢結果實體中price聲明的類型是BigDecimal,直接查詢出來保留兩位小數,這個好解決,有好幾種方法,我們這里列舉簡單的一種,

DecimalFormat df = new DecimalFormat("#0.00");--指定保留兩位小數

p.setPrice(p.getPrice==null?null:df.format(p.getPrice));

 

原以為這樣弄是OK的,但是沒想到精度還是丟失,1.20變成1.2

想了會,覺得可能是實體中BigDecimal類型的price在作為Json數據返回的時候會出現這種情況,然后試了一下,將實體類中的price改成了String類型,然后改了下代碼:

DecimalFormat df = new DecimalFormat("#0.00");--指定保留兩位小數

p.setPrice(p.getPrice==null?null:df.format(new BigDecimal(p.getPrice)));

 

然后就OK了,至於BigDecimal在通過Json轉化的時候為什么會丟失精度,還得百度一下,先下班了,明天繼續。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM