JSTL中的BigDecimal,除以int或double返回整数

时间:2012-06-04 13:55:44

标签: java jsp jstl el bigdecimal

<fmt:formatNumber var="instAmount" value="${invoice.amount / offer.getTotalInstallments()}" minFractionDigits="2" />

BigDecimalJava的金额为totalInstallmentsinttotalInstallments。我尝试将double设置为Integer,但没有任何变化。它返回{{1}},它的行为就像在Java中分割两个整数一样,你得到一个整数。

我错过了什么或有解决方法吗?

2 个答案:

答案 0 :(得分:3)

最简单的解决方案是在控制器/ servlet中执行此计算,并在视图页面上使用结果。我认为计算应该在控制器而不是视图中完成。您可以在BigDecimal上使用divide()方法。

也就是说,如果您想在视图中执行此操作,则必须在标记库中定义JSTL函数,并创建一个静态版本的divide,它接受您正在潜水的BigDecimal和int。

答案 1 :(得分:0)

你可以这样做:

< fmt:parseNumber value="${invoice.amount}" var="a" />

< fmt:parseNumber value="${offer.value)}"  var="b" />

${a/b}