问题描述:

在项目编写过程中,发现BigDecimal在jsp中进行除法运算时,会有如下问题: 
假设页面中存在一个BigDecimal payment.unPayAmount = new BigDecimal(1015228)。由于数据库保存的金额是以分为单位的,所以显示在页面时,则应该需要除以100。所以代码为:

<fmt:formatNumber value="${payment.unPayAmount/100}"type="currency" /> 

得出的值却是10,152.00。而我们所期望的值是10,152.28。

解决方法:

先将payment.unPayAmount由BigDecimal类型转为String类型

<fmt:parseNumber value="${payment.unPayAmount}" var="pageUnPayAmount" />,将用String类型的值去formatNumber。
<fmt:formatNumber value="${pageUnPayAmount/100}"type="currency" />,则可以得到我们所期望的值10,152.28。
05-02 16:24