<fmt:formatNumber var="instAmount" value="${invoice.amount / offer.getTotalInstallments()}" minFractionDigits="2" />
其中金额BigDecimal
Java
,totalInstallments
int
。我尝试将totalInstallments
设置为 double
但没有任何变化。它返回一个Integer
,它的行为就像在Java中除以两个整数时,你会得到一个整数。
我是否遗漏了某些内容或有解决方法?
最简单的解决方案是在控制器/servlet 中进行此计算,并在视图页面上使用结果。我认为计算应该在控制器而不是视图中完成。你可以在 BigDecimal 上使用divide() 方法。
也就是说,如果你确实想在视图中执行此操作,你必须在标签库中定义一个 JSTL 函数,并创建一个静态版本的divide,它接受 BigDecimal 和你正在潜水的 int。
你可以
这样做:
< fmt:parseNumber value="${invoice.amount}" var="a" />
< fmt:parseNumber value="${offer.value)}" var="b" />
${a/b}