1. 程式人生 > >關於BigDecimal型別在jsp頁面中進行除法運算問題

關於BigDecimal型別在jsp頁面中進行除法運算問題

問題描述:

在專案編寫過程中,發現BigDecimal在jsp中進行除法運算時,會有如下問題:
假設頁面中存在一個BigDecimal payment.unPayAmount = new BigDecimal(1015228)。由於資料庫儲存的金額是以分為單位的,所以顯示在頁面時,則應該需要除以100。所以程式碼為:<fmt:formatNumber value="${payment.unPayAmount / 100}" pattern="#,##0.00" />
得出的值卻是10,152.00。而我們所期望的值是10,152.28。

解決方法:

先將payment.unPayAmount由BigDecimal型別轉為String型別
<fmt:parseNumber value="${payment.unPayAmount}" var="pageUnPayAmount" />

,將用String型別的值去formatNumber。
<fmt:formatNumber value="${pageUnPayAmount / 100}" pattern="#,##0.00" />,則可以得到我們所期望的值10,152.28。

後記:

具體導致原因沒有深入去研究,具體遲點有時間再補充,如有知道的朋友,請解答一下,謝謝。